在我的網頁我有以下的用戶控件: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