单击动态LinkBut​​ton时保持变量

时间:2010-11-29 18:23:20

标签: asp.net

我剥离了我的解决方案,以便我能理解为什么这不起作用。希望有人可以提供帮助。

aspx页面上只有一个占位符控件:

<asp:PlaceHolder ID="Placeholder1" runat="server" />

在后面的代码中,我设置了一个名为 test 的变量,并在Page_Load上,将变量更改为其他内容。为什么当我点击动态添加的LinkBut​​ton时,测试变量没有维持它的状态:

    public string test = "Hello";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Response.Write(test + "<br />");  //test = "Hello"
            test = "Hello World!";
            Response.Write(test + "<br />");  //test = "Hello World!"
        }
        Placeholder1.Controls.Clear();
        CreateDynamicControl();
    }

    private void CreateDynamicControl()
    {
        LinkButton lnk = new LinkButton();
        lnk.Click += new EventHandler(lbl_Click);
        lnk.Text = "TEST LinkButton";
        Placeholder1.Controls.Add(lnk);
    }

    void lbl_Click(object sender, EventArgs e)
    {
        LinkButton lnk = sender as LinkButton;
        Response.Write("lbl_Click: " + test + "<br />");
    }

1 个答案:

答案 0 :(得分:0)

在ASP.NET变量中,不会在回发之间保持状态。您可以使用Session或ViewState来保留所需的值。

ViewState["test"] = "Hello World!";
Response.Write(ViewState["test"]);