读书人

为啥DataGrid 的HeaderTemplate中Text

发布时间: 2011-12-13 21:22:18 作者: rapoo

为什么DataGrid 的HeaderTemplate中TextBox.Text完法取出


private void Page_Load(object sender, System.EventArgs e)
{
bindDataGrid2();
}

public void bindDataGrid2()
{//本函数为了显示表头(内容为空)
DataTable dt = new DataTable();
Datagrid2.DataSource=dt;
Datagrid2.DataBind();
}

private void btnSave_Click(object sender, System.EventArgs e)
{
TextBox txtPackageName = null;
foreach(DataGridItem item in Datagrid2.Controls[0].Controls)
{
if(item.ItemType == ListItemType.Header)
{
txtPackageName = (TextBox)item.FindControl( "txtPackageName ");
break;
}
}
return;
}

将Datagrid2/HeaderTemplate/txtPackageName.Text设为 " "
txtPackageName = (TextBox)item.FindControl( "txtPackageName ");
这行取出的结果 txtPackageName.Text始终等于 " "

如果将Datagrid2/HeaderTemplate/txtPackageName.Text 设为 "ABC "
这行取出的结果 txtPackageName.Text等于 "ABC "

为什么会这样,难道和显示表头(内容为空)有关?


[解决办法]
可以取出来的
再仔细检查一下。
[解决办法]
private void Page_Load(object sender, System.EventArgs e)
{
bindDataGrid2();
}

》》》

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack) {
bindDataGrid2();
}
}

读书人网 >asp.net

热点推荐