grid1.DataKeys[e.RowIndex].Value.ToString()的用法诠释
2014-04-23 11:34
417 查看
grid1.DataKeys[e.RowIndex].Value.ToString()的用法诠释
一、先来说下:[e.RowIndex]里的 e 和Datakeys的意思:1、
e实际上是一个事件参数,当你点哪行e就是哪行,可以用RowIndex属性来取得该行的索引;
2、
而DataKeys是GridView的主键,可以使用DataKeys[行号]的方式取得,它返回一个DataKey
对象,然后就可以用DataKey.Value得到该行的主键值。
注意:在将数据源绑定到GridView上时,应该指定它的DataKeyField属性,才能正常使用。
二、再来解释下GridView1.DataKeys:
举个例子来说吧 你将一个student表绑定到grid上 这个表里有一些字段 包括id 姓名 学号 等等
grid的DataKey 属性设置了 datakey=“学号”
下边开始解释问题
GridView1.DataKeys是一个数组, 存储的是数据表中的一列的值 , 这一列 就是设为DataKeys的一列
即[学号]这一列 GridView1.DataKeys[e.RowIndex]则是学号这一列这个数组中的一个值,
索引为当前行的行号 也就是说GridView1.DataKeys[e.RowIndex]是当前行所对应的数据行这一行
的学号这个datakey。
GridView1.DataKeys[e.RowIndex].Value是什么?
这里就是当前行所对应的数据行这一行的学号这个datakey 所存储的值 即当前选择这个学生的学号。
三、也许大家会对下面的问题感到疑惑:
GridView1.DataKeys[GridView1.SelectedIndex].Va
4000
lue.ToString()
与
GridView1.DataKeys[e.RowIndex].Value.ToString() 的区别
是不同事件中获取当前选中行行号的不同方法
在grid的行相关事件中 可以直接用e来得到当前行 但是在非grid行事件中 作为e的事件触发对象就不是行,
所以要用GridView1.SelectedIndex 来获取当前选中行的行号
e.Row.RowType == DataControlRowType.DataRow诠释(实例解释)
代码语句如下: protected void OnRowCreate(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Normal)
|| e.Row.RowState == DataControlRowState.Normal)
{
ImageButton btnDelete = (ImageButton)(e.Row.FindControl("btnDelete"));
btnDelete.Attributes["onclick"] = "javascript:return confirm('真的要删除码?');";
}
}
}
一、
首先解释下: if (e.Row.RowType == DataControlRowType.DataRow)
e.Row.RowType 是指当前行的类型
DataControlRowType 是GridView的行的类型集合 , 其中的DataRow是数据绑定行
这个判断语句的意思就是判断当前行是不是数据绑定行。
二、指定数据控件(例如 DetailsView 或 GridView)中行的状态。
e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Normal)
判断当前行的状态,当前上面的代码用的少:要看看这个也许用的多:
if ((e.Row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate)) || (e.Row.RowState == DataControlRowState.Edit))
下面是引用msdn里的说明:
相关文章推荐
- grid1.DataKeys[e.RowIndex].Value.ToString()的用法诠释
- grid1.DataKeys[e.RowIndex].Value.ToString()的理解
- GridView1.DataKeys[e.RowIndex].Value.ToString() 必须为非负值并小于集合大小 参数名:index
- GridView1.DataKeys[e.RowIndex].Value.ToString() 索引超出范围问题
- GridView1.DataKeys[e.RowIndex].Value.ToString() 必须为非负值并小于集合大小 参数名:index
- Convert.ToInt32(gvProjectName.DataKeys[e.RowIndex].Value)索引超出范围问题
- GridView1.DataKeys[e.RowIndex].Value.ToString() 必须为非负值并小于集合大小。
- GridView1.DataKeys[e.RowIndex].Value.ToString() 索引超出范围问题
- smarty-foreach-key-value-index-iteration最全用法
- ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()
- DevExpress GridControl实现根据RowIndex和VisibleColumnsIndex来获取单元格值
- Ext.grid.plugin.RowExpander的简单用法
- (String)、toString、String.valueOf用法区别(转)
- 删除过程中使用dt.Rows.Find(ItemsGrid.DataKeys(e.Item.ItemIndex))
- 如何根据pageNo,pageSize,和index 算出如果pageSize是1的话在数据库中的pageNo(也就是说:算出数据在Grid中的行index所对应DB中的rowNumber )
- javascript => insertRow insertCell deleteRow rowIndex 用法
- 获得GridView内的RowIndex,取得DataKeys 的值
- 遇到一个MySQL小问题 Data truncation: Out of range value for column 'huid' at row 1
- z-index的用法