ASP.NET 中的会话变量返回 ModalBox 中的先前值

本文关键字:ModalBox 变量 NET 会话 ASP 返回 | 更新日期: 2023-09-27 18:33:36

我有一个关于将会话变量传递到更新面板(显示在模式弹出窗口中(中的文本框的问题。这是我到目前为止的代码:

ASPX 代码:

        <asp:TemplateField HeaderText="Link">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" Text="Link" runat="server" OnClick="LinkButton1_Click"  />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:gridview>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="panel_Load">
    <ContentTemplate>
        <asp:Button ID="OKButton" runat="server" Text="Close" />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>
<asp:ModalPopupExtender ID="mpe" runat="server" TargetControlID="ClientButton" PopupControlID="UpdatePanel1" OkControlID="OKButton">
</asp:ModalPopupExtender>
<asp:Button ID="ClientButton" runat="server" Text="Launch Modal Popup (Client)" style="display:none;" />

代码隐藏 (C#(:

protected void LinkButton1_Click(object sender, EventArgs e)
{
    GridViewRow clickedRow = ((LinkButton)sender).NamingContainer as GridViewRow;
    Label lbl_nme = (Label)clickedRow.FindControl("lbl_name");
    String string_nme = lbl_nme.Text.ToString();
    Session["Name"] = string_nme;
    mpe.Show();
}
protected void panel_Load(object sender, EventArgs e)
{
    Label1.Text = (string)(Session["Name"]);
}

所以基本上我有一个带有姓名、地址等的 GridView......当用户单击行中的链接时,该行的名称字段的值将另存为会话变量。然后显示一个模式弹出窗口。然后,模式弹出窗口应显示另存为会话变量的名称。

代码有点工作。我所经历的是,当我单击一行时,模式弹出窗口中的 Label1.Text 是空的。因此,如果我关闭弹出窗口,然后单击另一行中的另一个链接,弹出窗口将显示之前单击的行的名称。

换句话说..如果第 1 行的名称为"Kevin",第 2 行的名称为"Nathaniel",并且我单击链接以打开第 1 行的模态弹出窗口,我希望弹出窗口显示"凯文"。但事实并非如此。重建应用程序后第一次单击链接时,不显示任何内容。但是假设我在单击 row2 后单击第 1 行,然后模态弹出窗口显示我之前单击的行的值,即"凯文",当我期望它是"纳撒尼尔"时。

我希望我没有混淆任何人。我是一个新手,我刚刚进入这个东西,所以如果有人可以帮助我,我将不胜感激,最好是代码示例等。

谢谢。非常感谢。

ASP.NET 中的会话变量返回 ModalBox 中的先前值

"Load"事件(

panel_Load(发生在"Click"事件(LinkButton1_Click(之前,因此它只能看到前一个值。

快速解决方法是在"单击"事件中设置标签。除非为标签启用了ViewState(ick!(,否则可能还必须在"加载"中[重新]设置标签,具体取决于更新发生的时间/方式。

请参阅 ASP.NET 页面生命周期概述和 ASP.NET 应用程序和页面生命周期:页面事件。

快乐编码。