1
private
void
DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e)
2![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
3
if (e.Item.ItemType == ListItemType.Item)
4
e.Item.Cells[0].BackColor = System.Drawing.Color.LightYellow;
5
else if (e.Item.ItemType == ListItemType.AlternatingItem)
6
e.Item.Cells[0].BackColor = System.Drawing.Color.LightSteelBlue;
7
}
![None.gif](/Images/OutliningIndicators/None.gif)
2
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
3
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
4
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
5
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
6
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
7
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
然而在asp.net 2.0的GridView控件中,我们可以获取的是行的功能和状态,这就需要了解 DataControlRowType 枚举 和 DataControlRowState枚举,特别是后者,它允许其成员值按位组合,所以在作为判断条件时需要特别注意。
DataControlRowType 枚举 指定数据控件中行的功能:
成员名称 | 说明 | |
---|---|---|
DataRow | 数据控件的数据行。只有 行能绑定数据。 | |
EmptyDataRow | 显示页按钮或页导航控件的行。页导航行不能绑定数据。 | |
Footer | 数据控件的脚注行。脚注行不能绑定数据。 | |
Header | 数据控件的标题行。标题行不能绑定数据。 | |
Pager | 显示页按钮或页导航控件的行。页导航行不能绑定数据。 | |
Separator | 行分隔符。行分隔符不能绑定数据。 |
应用:
1
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
2![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
3
if (e.Row.RowType == DataControlRowType.DataRow)
4![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
5
e.Row.Cells[0].BackColor = System.Drawing.Color.LightYellow;
6
}
7
}
![None.gif](/Images/OutliningIndicators/None.gif)
2
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
3
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
4
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
5
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
6
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
7
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
DataControlRowState枚举 指定数据控件中行的状态:
成员名称 | 说明 | |
---|---|---|
Alternate | 指示该数据控件行是交替行。 Alternate 状态在任何时候都可以与其他状态组合,例如与 Normal、Edit 或 Insert 组合。这些行可能会受到数据控件的 AlternateRowStyle 属性影响(若已设置)。 | |
Edit | 指示该行处于编辑状态,这通常是单击行的“编辑”按钮的结果。通常,Edit 和 Insert 状态互相排斥。 | |
Insert | 指示该行是新行,这通常是单击“插入”按钮添加新行的结果。通常,Insert 和 Edit 状态互相排斥。 | |
Normal | 指示该数据控件行处于正常状态。Normal 状态与其他所有状态互相排斥。 | |
Selected | 指示该行已被用户选定。 |
此枚举有一个 属性,允许其成员值按位组合。在GridView或DetailsView 中,行的状态可以是一个 DataControlRowState 值或值的组合,因此使用按位运算来确定该行的状态是否包括一个 DataControlRowState 值而非一个等效测试。
1
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e)
2![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
3![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//*如果使用if (e.Row.RowState == DataControlRowState.Edit)作为判断条件,那么如果当前行恰好是交替行时,条件不成立-即便当前行确实也处于编辑状态*/
4
if ((e.Row.RowState & DataControlRowState.Edit) != 0)
5![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
6
e.Row.Cells[0].BackColor = System.Drawing.Color.Red;
7
}
8
}
![None.gif](/Images/OutliningIndicators/None.gif)
2
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
3
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
4
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
5
![ExpandedSubBlockStart.gif](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](/Images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
6
![InBlock.gif](/Images/OutliningIndicators/InBlock.gif)
7
![ExpandedSubBlockEnd.gif](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
8
![ExpandedBlockEnd.gif](/Images/OutliningIndicators/ExpandedBlockEnd.gif)