首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2011-12-13 
为什么DataGrid 的HeaderTemplate中TextBox.Text完法取出privatevoidPage_Load(objectsender,System.Event

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

热点排行