2011-03-18 167 views
0
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    onselectedindexchanged="GridView1_SelectedIndexChanged" 
    onselectedindexchanging="GridView1_SelectedIndexChanging"> 
    <Columns> 
     <asp:CommandField HeaderText="Show" SelectText="ShowMessage" 
      ShowSelectButton="True" /> 
    </Columns> 
</asp:GridView> 

<div id="content"><div> 

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) 
{ 
     string html = ""; 
     for (int i = 0; i < GridView1.Rows.Count; i++) 
     { 
      html += "<div style='display:none' id='" + i + "'>" + GridView1.Rows[i].Cells[3].Text + "</div>"; 
      GridView1.Rows[i].Cells[0].Attributes.Add("onclick", "$('#" + i + "').dialog()"); 
     } 
     content.InnerHtml = html; 
} 

顯示對話框onclick單元格[0]並自動關閉對話框?爲什麼?自動關閉JqueryDialog

回答

0

我的WebForms有點生疏,但如果GridView1_SelectedIndexChanging將在每次更改爲另一行時調用,則代碼將每次都重新創建對話位。這可能是它消失的原因。

0

每當您在網格中選擇另一行時,需要觸發服務器上的GridView1_SelectedIndexChanging事件,因爲需要完成PostBack才能獲取更改的數據。

每當發生一個PostBack時,使用JavaScript完成的所有事情都消失了,並且需要在再次加載頁面時再次初始化。

考慮一個PostBack就像一個新的頁面請求到服務器。

您可以考慮使用ASP.NET AJAX,把你DataGridUpdatePanel避免整頁PostBack但只有DataGrid的部分。