为什么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();
}
}