当前位置:编程学习 > C#/ASP.NET >>

asp.net 回发后页面如何保存变量

首先在我的master页面中有一个ID:textbox1的控件,我在master的内容页sub1.aspx中引用这个控件,但回发后,该引用就无效了,因为丢失了全局变量masterTextBox的值。

 public partial class sub1 : System.Web.UI.Page
    {
        private TextBox masterTextBox;  //变量保存对象

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        //点击第一个按钮,获得master页面中 ID为TextBox1的控件
        protected void ButtonGetMasterControls_Click(object sender, EventArgs e)
        {
            masterTextBox=this.Master.FindControl("TextBox1") as TextBox;//获取master页面的控件
        }

        //点击第二个按钮,给master页面中的控件设置值
        protected void ButtonChangeText_Click(object sender, EventArgs e)
        {
            
            masterTextBox.Text = "这是sub1.aspx设置的文本";//运行这里时出现异常,因为masterTextBox没有引用对象
        }

    }


我不想每次都用this.Master.FindControl("TextBox1") as TextBox;来获得控件引用,而让该控件由masterTextBox保存,可每次回发后,服务器会初始化masterTextBox,之前获得的引用就失效了。

viewstate只能保存键/值对这样的值,怎么样才能TextBox这样的对象呢? --------------------编程问答-------------------- 每一次页面的请求都会重新生成一次页面,也就是当前页面中所有的对象都会在内存中重新分配空间。即使你保存了对象也没有用的 --------------------编程问答--------------------  既然保存不了,那就用不刷新咯! --------------------编程问答-------------------- 楼主你想持久化TextBox的原因是什么。。。。不就是为了取值吗。。。。自己写个TextBox就完全满足你需求了 --------------------编程问答-------------------- 用隐藏域怎样 --------------------编程问答-------------------- 获取值用ViewState
设置值用ViewState赋值
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,