如何在ASP.NET中的页面中保留TextBox控件文本值?

时间:2016-12-18 18:07:03

标签: c# asp.net webforms

我有一个test.ascx.page,其中包含一个文本框控件。

控件由另一页test2.aspx.cs设置的值。

我想在用户会话级别和跨页面保留textbox(txtNo)的值,所以目前我通过将TextBox定义为静态控件来实现它。

test.ascx.cs

        public static TextBox txtNo
        public TextBox no
        {
            set { txtNo= value; }
            get { return txtURN; }
        }


test2.aspx.cs
//txtNumber is a texbox control
test.no= txtNumber;
txtNumber.text= test2.no.Text;

由于静态变量存在线程安全问题,有没有其他选择呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想在要查找的页面之间维护信息ASP .NET State Management。您可以选择不同的口味:

  • 查看状态
  • 控制状态
  • 隐藏的字段
  • 缓存
  • 查询字符串
  • 申请状态
  • 会话状态
  • 个人资料属性

我将解释最常用的方法:

  1. 使用Session State保存带有属性的对象,在您的网站登录期间,同一用户的每个页面都可以使用会话变量。所以在test.ascx中保存变量如:
  2. Session["myTextBox"]= myTextbox;

    将在test2.aspx页面的方法中提供:

    Object txtBox1 = Session["myTextBox"];

    1. 使用Query String通过以下网址将数据传递到下一页:
    2. ~/test2.aspx?textNo=4&textName=someName

      将在test2.aspx页面的Page_Load方法中提供:

          protected void Page_Load(object sender, EventArgs e)
          {
             int textNo = Request.QueryString["textNo"];
             string textName = Request.QueryString["textName"];
          }