我有一个带有 ButtonField 的 GridView,它显示每一行的项目 ID。
当用户单击项目 ID (ButtonField) 时,它会打开一个 jQuery 模式对话框,其中包含项目的更详细视图。当用户关闭对话框(使用右上角的 X)时,对话框关闭,一切都很好。
问题是:如果用户刷新页面,或者转到新页面然后使用后退按钮返回,页面刷新/重新打开,对话框已经打开。它应该保持关闭。
你能从我的代码中看出我做错了什么吗?
javascript:
// set the <div> "dialog-projectDetails" as a jQuery modal dialog.
$(function () {
$("#dialog-projectDetails").dialog({ autoOpen: false,
modal: true,
resizable: false});
});
asp:GridView - 我省略了大部分样式:
<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource2" DataKeyNames="ProjID"
EnableModelValidation="True" onRowCommand="GridView3_RowCommand">
<Columns>
<%-- Link ButtonType on ProjID to activate modal pop-up --%>
<asp:ButtonField
DataTextField="ProjID"
HeaderText=" Proj. Id"
ShowHeader="True" SortExpression="ProjID"
ButtonType="Link" CommandName="Select">
</asp:ButtonField>
<asp:BoundField
DataField="Projects"
HeaderText="Projects"
SortExpression="Projects">
</asp:BoundField>
<asp:BoundField
DataField="Status"
HeaderText="Status"
SortExpression="Status">
</asp:BoundField>
</Columns>
</asp:GridView> <!-- end GridView3 -->
代码背后:
protected void GridView3_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button clicked.
GridViewRow row = GridView3.Rows[rowIndex];
string projectID = GridView3.DataKeys[row.RowIndex].Value.ToString();
SqlDataSourceProjectComments.SelectParameters["ProjectID"].DefaultValue = projectID;
string scriptText = "<script type = 'text/javascript'> $(function(){$('#dialog-projectDetails').dialog('open');})</script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "DisplayProjectDetails", scriptText);
}
}
感谢您的任何建议。