工作,我有以下的測試ASPX頁面:jQuery用戶界面的對話框不會對ASP.NET
<head runat="server">
<title></title>
<script src="js/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.6.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var dlg = $("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 300,
modal: true,
buttons: {
'Ok': function() {
__doPostBack('TreeNew', '');
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
},
close: function() {
dlg.parent().appendTo(jQuery('form:first'));
}
});
});
function ShowDialog() {
$('#dialog').dialog('open');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="TreeNew" runat="server" Text="New"
OnClientClick="ShowDialog();return false;" onclick="TreeNew_Click"/>
<asp:Label ID="Message" runat="server"></asp:Label>
<div id="dialog" title="Select content type">
<p id="validateTips">All form fields are required.</p>
<asp:RadioButtonList ID="ContentTypeList" runat="server">
<asp:ListItem Value="1">Texte</asp:ListItem>
<asp:ListItem Value="2">Image</asp:ListItem>
<asp:ListItem Value="3">Audio</asp:ListItem>
<asp:ListItem Value="4">Video</asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
</form>
</body>
</html>
我用dlg.parent().appendTo(jQuery('form:first'));
上關閉功能從RadioButtonList的 retreive值。
它工作的很好,但在頁面執行回發之前,「對話框」div移動到「新建」按鈕下方。爲什麼?
因爲如果我在創建對話框後立即調用它,我總是看到對話框。 – VansFannel 2010-02-24 11:37:39
如果您已將autoOpen設置爲false(如您所見),則不應該看到對話框。你應該調用$(「#dialog」)。dialog()然後dlg.parent()。appendTo。如果對話框始終打開,請檢查是否包含所有js和css文件。 – kgiannakakis 2010-02-24 12:02:15
我發現了這個問題。這是關於jQuery的版本。正如你在問題中看到的,我一直在使用jquery-1.2.6.min.js和jquery-ui-1.6.custom.min.js。我已經更改爲jquery-1.3.2.min.js和jquery-ui-1.7.2.custom.min.js,並且我還在對話框中添加了一個打開的函數:open:function(type,data){$(this ).parent()。appendTo(「form」);}它工作! – VansFannel 2010-02-24 12:34:47