我在
但服务器端的 asp.net 文本框值为 null 。为什么 ? 我的代码在这里:
<div id="ReplyDiv" style="display:none;">
<asp:TextBox ID="txtReply" runat="server" Textmode="MultiLine"/>
</div>
<input type="button" id="btnReply" onclick="javascript:retuen ShowReplyDialog();"/>
<asp:Button ID="AspBtnReply" runat="server" OnClick="AspBtnReply_Click" class="hidden"/>
/*-----Jquery script----*/
<script type="text/javascript">
function ShowReplyDialog()
{
$("#ReplyDiv").dialog({
width: 580,
buttons: {
"Close": function () { $(this).dialog("close");} ,
"Send" : function () {
//----Call Asp.net server method here
$("#<%=AspBtnReply.ClientID %>").click();
}
}
}).parent().appendTo($("form:first"));
}
</script>
最佳答案
经过大量搜索,我明白有一些原因:
我可以解决它 **Jquery UI 对话框需要 z-index 样式 **。我的意思是:
<style> .ui-widget-overlay { z-index:0; } </style>
并且需要 jquery :
$("#..").dialog(.....).parent().parent().appendTo($("form:first"));
自从我使用 UpdatePanels 以来已经有一段时间了,但我相信在部分回发中,它们只会为其中的控件发送更新的值。因此,将 TextBox 移到 UpdatePanel 中,或者使用 Javascript 在更新时使用 TextBox 的上下文填充 UpdatePanel 中的隐藏控件。item
要在后台代码中获取输入值并通过服务器控件机制 (textBox.Text) 访问它们,它们的状态(和存在)需要保存在 ViewState 中。由于您是使用 javascript 构建它们,因此它们的状态不会持久化,您获取它们值的唯一方法是使用 Request.Form 集合。
这个问题说最好的tips:jQuery Dialog-Postback but UpdatePanel doesn't get updated **
禁用控件是最好的方法: Retrieving the value of a asp:TextBox
关于javascript - 当出现带有 Jquery 对话框的邮箱时,asp.net 文本框值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527753/