保存asp:Panel状态

时间:2015-05-06 17:17:26

标签: c# asp.net asp.net-mvc updatepanel pageload

我正在ASP.net(C#)开展一个项目,我对asp:Panel有一些麻烦。

基本上,我有一个asp:UpdatePanel,其中有一个asp:Panel; 我也有asp:TextBox和一个按钮。 我想要做的是:当用户在asp:TextBox中输入文本,然后点击按钮时,TextBox中的文本应该在asp:Panel中显示为Linkbutton。方法如下所示:

   protected void AddExchange_Click(object sender, EventArgs e)
    {
        LinkButton link2 = new LinkButton();
        link2.Text = AddAdditionalTxt.Text;
 //   link2.Command += new CommandEventHandler(LinkButton_Command);


        ExchangePanel.Controls.Add(link2);

    }

它有效,并且它将文本作为linkBut​​ton添加到面板,,当我想添加更多时,在被覆盖之前添加的linkBut​​ton。我想保留一些LIST<string>变量,其中包含所有字符串,但每当页面PostBack被删除时。

如果有人能告诉我如何解决它,我真的很感激 - 如何在UpdatePanel的页面中保留变量(List&lt;&gt;),以便每PageLoad我可以添加所有asp:Panel中列表中的字符串。

提前致谢。

1 个答案:

答案 0 :(得分:1)

此代码适用于我,ViewState会保留List<string>用户留在页面中的时间

    protected void AddExchange_Click(object sender, EventArgs e)
    {
        List<string> stringList;
        if (ViewState["stringList"] == null)
            stringList = new List<string>();
        else
            stringList = ViewState["stringList"] as List<string>;

        stringList.Add(AddAdditionalTxt.Text);
        foreach (string myStr in stringList)
        {
            LinkButton link2 = new LinkButton();
            link2.Text = myStr;
            //   link2.Command += new     CommandEventHandler(LinkButton_Command);
            ExchangePanel.Controls.Add(link2);
        }
        ViewState["stringList"] = stringList;
    }