asp.net page中用ViewState读取用户控件中的属性

转自:http://www.cxyclub.cn/post/page-ViewState-UserContorl-GetValue.html

 

 

用户控件
类名:WebUserControl
属性:private DataTable dt                 //这里用public protected private都行,关键是ViewState是Protected的,因此需要定义下面的方法来读取或者访问
方法:

private DataTable _mydt = null;
public DataTable mydt
{
        get {

                    return (DataTable)ViewState["thedt"];    //注:不能 return _mydt,因为其不能保存改变了的值,即控件中重新给_mydt赋值,在page中取到的还是null

              }
        set {

                  _mydt = value;

              }
}
事件:
    protected void Button1_Click(object sender, EventArgs e)
    {
        DataSet ds=new DataSet();
         ……
        dt = ds.Tables[0];
        ViewState["thedt"] = dt;              //这里存入到ViewState中,方法跟Session颇为相似
    }

page
用户控件id:WebUserControl1
读取控件中的属性:
    DataTable dt = new DataTable();
    protected void Button1_Click(object sender, EventArgs e)
    {
            dt = WebUserControl1.mydt;         //读取出来了
    }

 

posted on 2010-03-08 11:53  xiaohu  阅读(731)  评论(0编辑  收藏  举报