GridView、DataGrid之e.Item.Cells[x].Controls[y])使用

public void data_change(object sender,DataGridCommandEventArgs)
{
.......
.......

string value=((TextBox)e.Item.Cells[3].Contorls[0]).Text;
....


}

Cells[3] 指的是当前行的第四列.
Contorls[0]指的是第一个控件.
准确的说,((TextBox)e.Item.Cells[3].Contorls[0]).Text这一句的完整意思是:把触发事件的句柄(EventArgs,这里应该是DataGridCommandEventArgs,在入口参数中应该被默认声明为了变量e)所在的行(DataGridItem,也就是e.Item,这里指当前行)中的第4个单元格(Cells数组的下标从0开始,所以是第4个单元格)中的第一个控件(Controls数组的下标也是从0开始,所以自然是找第一个控件),强制转换为TextBox,并取得其中的Text属性的值。这种用法多见于模板列,因为模板列中的一个单元格可能会放多个控件。不过即使不用模板列也是有Contorls[0]对象的,因为默认DataGrid在显示值的时候都是通过一个Literal控件进行显示的(该对象为System.Web.UI.WebControls.Literal类的实体)
 

你可能感兴趣的:(职场,休闲)