我有一个股票jQuery对话框div,其中包含一个包含在updatepanel中的数据条目usercontrol。它看起来很棒,直到第一次回发。之后根本没有应用任何样式。 (控件保留其值并且事件继续按预期运行。)关闭对话框后,如果有回发,则后续.dialog(“open”)调用没有应用样式。
$(function () {
var dlg = jQuery("#EventMod").dialog({
autoOpen: false
, modal: true
});
dlg.parent().appendTo(jQuery("form:first"));
$(".NewEvent").click(function () {
$("#EventMod").dialog("open");
return false;
});
});
对话框div在这里:
<div id="EventMod" title="Event Modify" class="ui-helper-hidden">
<asp:UpdatePanel ID="updNewEvent" runat="server">
<ContentTemplate>
<uc1:EventEdit ID="NewEvent" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
在usercontrol中,动态分配类,它们显示如下:
<table class="NewEvent" >
<tr>
<td align="center">
<table class="Event">
<tr class="Title">
<th width="55">
<strong>Event #</strong>
</th>
... snip ...
我在父页面中链接了样式表。我尝试将其添加到usercontrol,但没有可见的结果。
答案 0 :(得分:2)
之前我有这种奇怪之处,必须这样做才能在UpdatePanel
内获得稳定的结果:
$(function () {
var titleText="This is the title"
var key = "uniqueId";
var newParentDiv= "#" + key;
var div = $("<div title='" + titleText + "' id='" + key+ "'></div>");
$('body').append(div);
$(newParentDiv).html($("#EventMod").html());
var dlg = jQuery(newParentDiv).dialog({
autoOpen: false
, modal: true
});
dlg.parent().appendTo(jQuery("form:first"));
$(".NewEvent").click(function () {
$(newParentDiv).dialog("open");
return false;
});
});
对我来说,问题是jQuery对话框实际上将您的内容移动到DOM中的新位置。如果发生部分回发而没有更新jQuery UI放置对话框的DOM,它会变得陈旧或挂起。