我有一个页面a.aspx和一个用户控件b.ascx,因为b.ascx是一个公共控件,它接收一个数据库的表名,然后根据接收到的不同字符串把自带的DataGrid绑定到不同的数据表。所以我在b.ascx中设置了一个属性:
private string _table;
public string Table
{
get
{
return _table;
}
set
{
if(value != "" && value != null)
{
_table=value;
}
}
}然后我在a页面加载的时候将表名赋给b的属性:
protected DataGrids DataGrid1 =new DataGrids();//DataGrid1为b控件的ID
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
DataGrid1.Table="aspx_csharp";
}
}现在在b控件加载时能获_table的值,但在按钮事件中得到的值却为空:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
Response.Write(_table);//此处能正常输出"aspx_csharp"
}
}
......
private void lnkbFirst_Click(object sender, System.EventArgs e)//首页
{
Response.Write(_table);//在按钮的事件中却获取到空值,输出为空。
}不都是在同样的用户控件类里吗,为什么Page_Load中能获取私有域的值,而按钮的Click事件却无法获取呢?盼高手解答,不甚感激!!
private string _table;
public string Table
{
get
{
return _table;
}
set
{
if(value != "" && value != null)
{
_table=value;
}
}
}然后我在a页面加载的时候将表名赋给b的属性:
protected DataGrids DataGrid1 =new DataGrids();//DataGrid1为b控件的ID
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
DataGrid1.Table="aspx_csharp";
}
}现在在b控件加载时能获_table的值,但在按钮事件中得到的值却为空:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
Response.Write(_table);//此处能正常输出"aspx_csharp"
}
}
......
private void lnkbFirst_Click(object sender, System.EventArgs e)//首页
{
Response.Write(_table);//在按钮的事件中却获取到空值,输出为空。
}不都是在同样的用户控件类里吗,为什么Page_Load中能获取私有域的值,而按钮的Click事件却无法获取呢?盼高手解答,不甚感激!!
解决方案 »
- wap网站
- *.ASP网页如何防被人下载?
- ajax动态注册脚本
- asp.net 2.0 C# SMTP邮件发送错误
- 像CSDN上这种网页找不着了,出错了,但是还能显示出CSDN信息的页是怎么做的
- 验证控件的问题
- 报表出错 原来用低版的.net做的,现在换成了2003 但是有些不能用了,错误出在<%@ Register TagPrefix="cr" Namespace="CrystalDecisions.
- VS.Net怎么配置?
- 如何在web上实现数据报表,请提一点好的建议
- 1. 使用OleDbConnection.item("字段名称") 来访问字段的值,如果字段值为null时,则会出错,有什么办法可以判断该字段的值是否为null:如
- 哪位兄弟用过开源的门户网站Rainbow,一起交流!
- 关于控制IE页面大小和显示方式
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
DataGrid1.Table="aspx_csharp";
}
}表名建议放在ViewState中,这样PostBack之后也能取回值。
public string Table
{
get
{
if(ViewState["TableName"] != null)
{
return ViewState["TableName"].ToString();
}
else
{
return "";
}
}
set
{
ViewState["TableName"] = Value;
}
}
这时b。ascx里面的就没有被赋值了
{
get
{
return ViewState.Item["table"];
}
set
{
if(value != "" && value != null)
{
ViewState.Item["table"]=value;
}
}
}