DataView(2):RowState
2009-03-12 00:08
148 查看
在Dataview控件开启了编辑功能后,点“编辑”链接一般来说都会改变该行为Edit状态,比如在RowDataBound这类事件中用
if(e.Row.RowState == DataControlRowState.Edit)
{
string a="test";
}
来判断是否当前行处于Edit状态,其实这样照理说没任何问题,但是会遇到一个问题,在单数行执行上面的代码块没问题(比如1,3,5,7..行),但是双数行就不会执行(比如2,4,6..行),仔细调试跟踪+MSDN发现双数行的RowState不仅仅有"edit"状态还有"Alternate"状态,MSDN中Alternate的说明是"指示该数据控件行是交替行",难怪不得上面判断代码不执行,把他们都转换成int跟踪看看
int i = (int)(e.Row.RowState);//单行为4,交替行为5
int j = (int)(DataControlRowState.Edit);//4
跟踪调试发现在交替行时候i值是5而j是4 所以上面IF语句条件判断不正确当然不会执行了,在单行时候i和j的值都为4,上面IF条件判断4==4所以执行没问题。
这里介绍一种方法不管是单行还是交替行都认为是EDIT状态:
if ((e.Row.RowState & DataControlRowState.Edit) != 0)
因为不管4&4还是5&4都不等于0,所以上面IF执行成功,如果要判断非edit状态,比如说刚进入dataview的时候我们可以通过
if ((e.Row.RowState & DataControlRowState.Edit) == 0)
来判断,这个时候RowState的值是Normal也就是0,自然0&4==0 上面if执行成功。
一点点学习经验,有什么不对地方还请指明。
if(e.Row.RowState == DataControlRowState.Edit)
{
string a="test";
}
来判断是否当前行处于Edit状态,其实这样照理说没任何问题,但是会遇到一个问题,在单数行执行上面的代码块没问题(比如1,3,5,7..行),但是双数行就不会执行(比如2,4,6..行),仔细调试跟踪+MSDN发现双数行的RowState不仅仅有"edit"状态还有"Alternate"状态,MSDN中Alternate的说明是"指示该数据控件行是交替行",难怪不得上面判断代码不执行,把他们都转换成int跟踪看看
int i = (int)(e.Row.RowState);//单行为4,交替行为5
int j = (int)(DataControlRowState.Edit);//4
跟踪调试发现在交替行时候i值是5而j是4 所以上面IF语句条件判断不正确当然不会执行了,在单行时候i和j的值都为4,上面IF条件判断4==4所以执行没问题。
这里介绍一种方法不管是单行还是交替行都认为是EDIT状态:
if ((e.Row.RowState & DataControlRowState.Edit) != 0)
因为不管4&4还是5&4都不等于0,所以上面IF执行成功,如果要判断非edit状态,比如说刚进入dataview的时候我们可以通过
if ((e.Row.RowState & DataControlRowState.Edit) == 0)
来判断,这个时候RowState的值是Normal也就是0,自然0&4==0 上面if执行成功。
一点点学习经验,有什么不对地方还请指明。
相关文章推荐
- DataRowState & DataViewRowState
- DataTable.Select 方法 (String, String, DataViewRowState)
- DataViewRowState 枚举
- C#DataViewRowState一个数据表的数据状态示例
- ADO.NET_第五篇_DataTable_09DataViewRowState
- DataView的属性DataViewRowState对应各个状态的不同输出
- DataViewRowState 枚举
- DataTable,DataView和DataGrid中一些容易混淆的概念
- Infragistics NetAdvantage控件的使用:该关系不是此 DataView 指向的表的父关系
- DataView数据视图实现数据过滤,排序(代码调试通过)
- DataControlRowState | & 位运算
- DataView.RowFilter 属性
- 将DataTable与DataView转换成DataSet(示例)
- DataView可以很好的处理DataTable中的数据
- [SharePoint Designer技巧-1]使用DataView与Form Web Part实现列表的关键字查询--转载
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- SharePoint:DataView如何绑定Web Service返回的主从表数据集
- 基于SqlDataSource的DataView中的删除操作
- DataView 使用技巧 [转]