我身上有一根刺。我有一个 ASP.NET Web 表单页面。在页面中,我有一个 div 标签,我已将其设置为用作 jQuery 对话框。 div 中是一些 jQuery 控件。我打开对话框并单击其中一个按钮开始回发。当页面回发时,隐藏代码尚未读取控件中的值。当然,稍微深入研究一下 html 就会发现,该对话框将我的 div 移至 html 页面的底部,位于我的 asp.net 表单标记之外。乌尔克!
我该如何解决这个问题?
并不是说它真的对我的对话框代码有帮助,代码在这里:
$("#dialog-copy").dialog({
autoOpen: false,
height: 200,
width: 400,
modal: true,
resizable: false,
buttons: {
'Cancel': function () {
$(this).dialog('close');
},
'Yes': function () {
$(this).dialog('close');
$("[id*=btnCopy]")[0].click();
}
},
open: function () {
$(":button:contains('Yes')").addClass("blue");
}
});
$("[id*=btnCopy]").live('mousedown', function (e) {
e.preventDefault();
$("#dialog-copy").dialog('open');
});
典型的 div 标签(移至表单标签之外)如下所示:
<div id="dialog-copy" style="DISPLAY: none" title="Copy Schedule">
<p>Please enter a schedule number:</p>
<asp:Textbox runat="server" id="txtSchNo"></asp:Textbox>
</div>
单击"is"会触发调用回发的按钮。
最佳答案
这是一个已知问题,您必须将其附加到这样的表单中,并且您的普通 .NET 控件可以回发:
open: function () {
$(this).parent().appendTo("form");
$(":button:contains('Yes')").addClass("blue");
}
更新 jQuery 的新版本:
$('#yourDIv').dialog({
.....,
appendTo: $('form'),
....
});
关于jquery - 在 jQuery 对话框中时,asp.net 表单控件不可读,如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591601/