我想知道是否有人可以幫我解決我遇到的問題。我正在使用Asp.net和JQuery UI 1.9.2。我的表單上有一個文本框和一個搜索按鈕。當點擊按鈕時,服務器端查詢數據庫並將所有結果存儲在Gridview中。爲了與Asp.Net GridView的DataTable中工作,我這樣做在CS以下幾點:帶DataTable的JQuery對話框()
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
// No point to change settings if there isn't any rows
if (this.gridMemberInfo.Rows.Count <= 0)
return;
// Change table so there is a THEAD
this.gridMemberInfo.HeaderRow.TableSection = TableRowSection.TableHeader;
if(this.gridMemberInfo.ShowFooter)
this.gridMemberInfo.FooterRow.TableSection = TableRowSection.TableFooter;
}
這的GridView的是,我用一個jQuery對話框作爲一個模式彈出一個div中。從查詢的結果綁定GridView的數據源後,我這樣做是爲了創建模式:
CS:
ScriptManager.RegisterStartupScript(this, this.GetType(), "MemberModal", "CreateMemberModal();", true);
JS:
function CreateMemberModal()
{
$(document).ready(function()
{
$("#modal").dialog(
{
modal: true,
hide: "explode",
width: 700,
height: "auto",
resizable: false,
open: function (event, ui)
{
$("#gridMemberInfo").dataTable(
{
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aaSorting": []
});
}
})
});
}
模態顯示正確和完美的作品第一次打開對話框。但是,如果用戶關閉對話框並執行不同的搜索,則會打開該對話框,但GridView不會使用任何DataTable屬性(在模式中顯示爲常規HTML表格)。另外,模式div位於asp:UpdatePanel內部,因此在搜索過程中不會重新加載頁面。任何人都可以看到我做錯了什麼?
updatepanel會在每次更新時重繪內容,所以$(document).ready將只處理第一個實例 - 當頁面加載時觸發。您可以將該代碼功能化並在更新面板時調用它。不發佈爲答案,因爲我認爲這隻會部分解決您的問題 – Dan