GridViewRow gvr = GridView1.Rows[e.RowIndex];
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
string ID = e.Keys["ID"].ToString();
GridViewRow gvr = GridView1.Rows[e.RowIndex];
gvr.FindControl("txtgvApproveNum")
gvr.FindControl("txtgvApproveNum")
if (e.Row.RowType == DataControlRowType.DataRow)
//当前行是数据绑定行
gridview控件中OnRowDataBound属性作用gridview控件中OnRowDataBound属性作用
在行数据绑定完成后,处理一些后事,比如,设置条件格式,大于多少的,字体红色,设置背景什么的,也可以更改一些数据,比如把某一列改成序号,添加一些样式,求总和,总之就是在绑定完数据后根据条件对GRIDVIEW的再改造
OnRowCreated
呈现 GridView 控件之前,必须先为该控件中的每一行创建一个 GridViewRow 对象。在创建 GridView 控件中的每一行时,将引发 RowCreated 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时就执行一个自定义例程(如在行中添加自定义内容)。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
}
问 GridView1.DataKeys是什么? e.RowIndex是什么含义? GridView1.DataKeys[e.RowIndex]是一个数组吗? GridView1.DataKeys[e.RowIndex].Value是什么?
GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString()
与
GridView1.DataKeys[e.RowIndex].Value.ToString()
有什么区别??
举个例子来说吧 你将一个student表绑定到grid上 这个表里有一些字段 包括id 姓名 学号 等等等等 grid的DataKey 属性设置了 datakey=“学号”
下边开始解释问题
GridView1.DataKeys是什么?
GridView有一个属性是DataKey 当将数据表绑定到GridView时,设置数据表的一列为DataKey 即GridView.datakey=“学号”
msdn讲DataKey解释为 获取 DataKeyCollection 对象,它存储数据列表控件中每个记录的键值。
其实 就是将 [学号] 这列作为列关键字 列标识
e.RowIndex是什么含义?
能够使用e.rowindex 说明 应该是grid的row相关事件 其中的e就是事件的触发者 也就是当前行 e.rowindex 也就是当前行的索引 行号 第几行的“几”
GridView1.DataKeys[e.RowIndex]是一个数组吗?
GridView1.DataKeys是一个数组 存储的是数据表中的一列的值 这一列 就是设为DataKeys的一列 即[学号]这一列
GridView1.DataKeys[e.RowIndex]则是学号这一列这个数组中的一个值 索引为当前行的行号
也就是说GridView1.DataKeys[e.RowIndex]是当前行所对应的数据行这一行 的 学号这个datakey
GridView1.DataKeys[e.RowIndex].Value是什么?
这里就是当前行所对应的数据行这一行 的 学号这个datakey 所存储的值 即当前选择这个学生的学号
GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString()
与
GridView1.DataKeys[e.RowIndex].Value.ToString() 的区别
是不同事件中获取当前选中行行号的不同方法
在grid的行相关事件中 可以直接用e来得到当前行 但是在非grid行事件中 作为e的事件触发对象就不是行 所以要用GridView1.SelectedIndex 来获取当前选中行的行号