关于 DataControlRowType枚举 和 DataControlRowState 枚举

在asp.net 1.1里,我们在使用DataGrid时偶尔会需要获取行的类型,这用到了 ListItemType枚举,例如:
1 None.gif      private   void  DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
3InBlock.gif        if (e.Item.ItemType == ListItemType.Item)
4InBlock.gif            e.Item.Cells[0].BackColor = System.Drawing.Color.LightYellow;
5InBlock.gif        else if (e.Item.ItemType == ListItemType.AlternatingItem)
6InBlock.gif            e.Item.Cells[0].BackColor = System.Drawing.Color.LightSteelBlue;
7ExpandedBlockEnd.gif    }

然而在asp.net 2.0的GridView控件中,我们可以获取的是行的功能和状态,这就需要了解 DataControlRowType 枚举 DataControlRowState枚举,特别是后者,它允许其成员值按位组合,所以在作为判断条件时需要特别注意。


DataControlRowType 枚举 指定数据控件中行的功能:
 成员名称说明
DataRow数据控件的数据行。只有 行能绑定数据。 
EmptyDataRow显示页按钮或页导航控件的行。页导航行不能绑定数据。 
Footer数据控件的脚注行。脚注行不能绑定数据。 
Header数据控件的标题行。标题行不能绑定数据。 
Pager显示页按钮或页导航控件的行。页导航行不能绑定数据。 
Separator行分隔符。行分隔符不能绑定数据。 

应用:
1 None.gif      protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
3InBlock.gif        if (e.Row.RowType == DataControlRowType.DataRow)
4ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
5InBlock.gif            e.Row.Cells[0].BackColor = System.Drawing.Color.LightYellow;
6ExpandedSubBlockEnd.gif        }

7ExpandedBlockEnd.gif    }


DataControlRowState枚举 指定数据控件中行的状态:
 成员名称说明
Alternate指示该数据控件行是交替行。  

Alternate 状态在任何时候都可以与其他状态组合,例如与 NormalEditInsert 组合。这些行可能会受到数据控件的 AlternateRowStyle 属性影响(若已设置)。

Edit指示该行处于编辑状态,这通常是单击行的“编辑”按钮的结果。通常,EditInsert 状态互相排斥。 
Insert指示该行是新行,这通常是单击“插入”按钮添加新行的结果。通常,InsertEdit 状态互相排斥。 
Normal指示该数据控件行处于正常状态。Normal 状态与其他所有状态互相排斥。 
Selected指示该行已被用户选定。 

此枚举有一个 属性,允许其成员值按位组合。在GridViewDetailsView 中,行的状态可以是一个 DataControlRowState 值或值的组合,因此使用按位运算来确定该行的状态是否包括一个 DataControlRowState 值而非一个等效测试。
1 None.gif      protected   void  GridView1_RowDataBound( object  sender, GridViewRowEventArgs e)
2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
3ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//*如果使用if (e.Row.RowState == DataControlRowState.Edit)作为判断条件,那么如果当前行恰好是交替行时,条件不成立-即便当前行确实也处于编辑状态*/
4InBlock.gif        if ((e.Row.RowState & DataControlRowState.Edit) != 0)
5ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
6InBlock.gif            e.Row.Cells[0].BackColor = System.Drawing.Color.Red;
7ExpandedSubBlockEnd.gif        }

8ExpandedBlockEnd.gif    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值