0

我有一个带有 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="&nbsp;&nbsp;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);
    }
 }

感谢您的任何建议。

4

0 回答 0