关于ASP.NET基础请教

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:42:22
大家好,在DataGrid更新时候用到的代码
string name=((TextBox)e.Item.Cells[3].Controls[1]).Text.Trim();
我想问一下这句代码里的Controls[1]表示什么意思,别人说ItemTemplate表示索引0,EditTemplate表示索引1,如果这样解释那非常合理
但是我不明白的是HeaderTemplate又是索引几?
还有一个小问题,我的DataSet已经填充完数据而ds.Tables[0].Rows[i][1]里面的值是数据库里的TYPE类型是INT来的,然后
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if((int)ds.Tables[0].Rows[i][1]==1)
{
ds.Tables[0].Rows[i][1]="入库";
}
else
{ ds.Tables[0].Rows[i][1]="出库";
}
}
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
按逻辑来说DataSet应该和数据库脱离了,可以顺利替换值,可是运行时提示错误,无法替换TYPE的值,因为TYPE的类型是INT32,我实在没办法了,救命.....

第一个问题,我刚看到知道上有人问了同样的问题,虽然不知道代码是哪里来的,不过我给他了一个解决方法:
直接在datagrid设置该列的Visible=False,然后用
e.Item.Cells[0].Text就可以了

第二个嘛,虽然跟数据库脱离了,但是不同的数据类型也是不能放的啊,你最好重新建立一列,最后再把int型的那一列删除