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; //读取出来了
}