ASP.NET用户控件和jQuery对话框
在我的页面上,我获得了以下用户控件:ASP.NET用户控件和jQuery对话框,asp.net,jquery,user-controls,dialog,Asp.net,Jquery,User Controls,Dialog,在我的页面上,我获得了以下用户控件: <div class="editFormDialog" style="display: none; font-size: 12px;"> <mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" /> </div> 我不希望它在按下按钮时打开(这不是ASP.NET按钮,纯HTML): 对话框打开,但UC不包
<div class="editFormDialog" style="display: none; font-size: 12px;">
<mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" />
</div>
我不希望它在按下按钮时打开(这不是ASP.NET按钮,纯HTML):
对话框打开,但UC不包含正确的数据。
加载页面时,UC将使用默认数据进行更新。然后用户单击一个按钮,数据会更改,但UC不会更新。它仍然包含默认数据。这就是问题所在
你知道为什么吗
非常感谢您的帮助 当您“调用属性”(我假设您的意思是它是一种方法)时,会发生什么?页面是否执行回发?如果是这样的话,那么当您将jQuery混合到场景中时,回发可能会以某种方式被阻止?既然您使用的是更新面板,那么如何在页面中注入对javascript的调用呢?我这样问是因为只有一种方法可以在部分回发上正常工作:ScriptManager.RegisterStartupScript()。这使得javascript代码可以像加载页面一样运行。当然,也可以调用任何其他onload javascript,这可能会导致您看到的行为 所以
还可以使用web服务在ajax控件中打开UC来更改数据源。没有更多的部分回发,这通常会提高页面的响应能力。我找到了解决这个问题的方法。事实证明,当您附加到表单时,需要确保这段代码在jquery文档中已准备就绪:
$("#dialog1").parent().appendTo($("form:first"));
所以整个事情应该是这样的:
jQuery(document).ready(function() {
$("#<%=myFamilyGrid.ClientID %>").tablesorter({
sortList: [[0, 1]]
})
.tablesorterPager({ container: $("#pager") });
$("#dialog1").dialog({
modal: true,
height: 370,
width: "350px",
autoOpen: false,
bgiframe: false,
zIndex: 3999
});
$("#dialog1").parent().appendTo($("form:first"));
});
jQuery(文档).ready(函数(){
$(“#”)表排序器({
排序列表:[[0,1]]
})
.tablesorterPager({container:$(“#pager”)});
$(“#对话框1”)。对话框({
莫代尔:是的,
身高:370,
宽度:“350px”,
自动打开:错误,
bgiframe:false,
zIndex:3999
});
$(“#dialog1”).parent().appendTo($(“form:first”);
});
希望这有帮助 我点击一个按钮获取下一个数据。发生回发。UC中的属性设置为“editUC.EditData=ds;”。页面将显示新数据。现在,当我单击另一个按钮使对话框弹出时,UC仍然包含默认数据。就像它没有在数据源中注册更改一样。但是如果我在对话框外显示UC,它会工作得很好。这听起来确实很奇怪:你能发布更多的源代码吗?它们都放在更新面板中。当我创建对话框时,它是否会“移到”更新面板之外?也许另一个解决方案是每次打开对话框时创建它,然后在关闭对话框时删除它?当然,将html元素放置在正确的位置。但是我该怎么做呢?好吧,有了jQuery和ASP.NETAjax这样的游戏,我一定会尽量简化一些事情,以便找到答案。很抱歉,我帮不了你更多的忙有没有办法用jQuery AJAX取代ASP.NET AJAX?有这方面的文章吗?
$("#dialog1").parent().appendTo($("form:first"));
jQuery(document).ready(function() {
$("#<%=myFamilyGrid.ClientID %>").tablesorter({
sortList: [[0, 1]]
})
.tablesorterPager({ container: $("#pager") });
$("#dialog1").dialog({
modal: true,
height: 370,
width: "350px",
autoOpen: false,
bgiframe: false,
zIndex: 3999
});
$("#dialog1").parent().appendTo($("form:first"));
});