在我的网页我有以下的用户控件:ASP.NET用户控件和jQuery对话框
<div class="editFormDialog" style="display: none; font-size: 12px;">
<mm:Form ID="editUC" ShowCreateButton="false" ShowEditButton="true" runat="server" />
</div>
这UC具有公共属性,可以取一个数据集,并更新UC某些字段。
因此,当我按下我的页面上的按钮时,它会在UC上调用此属性,并且UC会使用DataSet中的数据进行更新。
到目前为止这么好。当我想让UC成为一个jQuery UI对话框时,问题就出现了。
首先我创建对话框:
$(document).ready(function() {
$('.editFormDialog').dialog({
autoOpen: false,
height: 700,
width: 780,
modal: true,
bgiframe: true,
title: 'Rediger',
open: function(type, data) {
$(this).parent().appendTo("form");
$(this).css('display', 'block');
}
});
});
我wan't它在按钮按下打开(这不是一个ASP.NET按钮,纯HTML):
$('#btnEdit').live('click', function() {
$('.editFormDialog').dialog('open');
});
该对话框打开,但UC没有包含正确的数据。 当页面加载时,UC用默认数据更新。然后用户点击一个按钮,数据改变但UC不更新。它仍然包含默认数据。那就是问题所在。
你知道为什么吗?
帮助将非常感谢!
我点击一个按钮来获取下一个数据。回发发生。 UC中的属性设置为“editUC.EditData = ds;”。该页面提供了新的数据。现在,当我点击另一个使对话框弹出的按钮时,UC仍然包含默认数据。就像它没有在其数据源中注册更改一样。但是如果我在对话框外面显示UC,它可以很好地工作。 – 2009-08-16 12:16:21
这听起来很奇怪:你能发布一些更多的源代码吗? – 2009-08-16 12:50:35
它全部放置在更新面板中。是否可以在创建对话框时将其“移出”更新面板?也许另一种解决方案可能是在每次打开对话框时创建对话框,然后在关闭对话框时将其删除?当然,将html元素放在正确的位置。但我该怎么做? – 2009-08-16 13:34:53