日期:2012-05-14  浏览次数:20399 次

【分享】DataGrid中单元格的比较

搞了近半个小时,才测试出来。
以为Asp.NET中DataGrid的行表示也是DataRow.
死活就找不出来。
后来看到有个DataGridItemCollection和DataGridItem
后者的提示为DataGrid的项(行).

于是用了这句:

int i = dgCourse.Items.Count; // dgCourse 为DataGrid实例

返回i的值为具体的行数,well,总算找到行了。
但行中的列要进行比较怎么办?
又想起DataColumn
在DataGrid中有个 DataGrid.Columns
但那只针对所有的列,不能进行单行的列比较。
于是在 DataGrid.Item中去找,
发现有个 DataGrid.Item.Cells 的东东,提示说“DataGrid项的单元格”
well.应该就是它了,取两个index并将string转换成int来比较看看


int courseCount = 0;
int coursePeo = 0;
foreach(DataGridItem di in dgCourse.Items) // DataGridItem 表示 DataGrid中的行
{
courseCount = int.Parse(di.Cells[5].Text); // DataGridItem.Cells[5] 表示 行中的第6个单元格
coursePeo = int.Parse(di.Cells[6].Text);
if(courseCount <= coursePeo) // 单元格进行比较
{
di.Cells[6].ForeColor = System.Drawing.Color.Red;//若不大于显示红色
}
}