1

Is there any easier way of using the code:

For Each gvRow As GridViewRow In gvGridviewExample.Rows
    If gvRow.RowType = DataControlRowType.DataRow Then
        'Do Something
    End If
Next

Such as when using a iEnumerable you theoritically (psuedo code style) add a:

gvGridviewExample.Where(Function(chR) chR.Row = DataRow)

I just wondered if there is an easier way of coding this out?

Thanks,

Firstcape

4

2 回答 2

3

除了您的第一个片段实际上非常简单明了之外,Rowsa 的属性GridView返回. 所以你根本不需要检查类型。DataRows

MSDN

Rows属性(集合)用于将数据行存储在 GridView 控件中。

只有将 RowType 属性设置为 DataControlRowType.DataRow的行存储在 Rows 集合中。表示页眉、页脚和分页器行的 GridViewRow 对象不包含在集合中。

RowCreated在或之类的事件中只能有不同的类型RowDataBound。如果您想在这些事件之外访问页眉、页脚或分页器,您可以使用GridViewlikeHeaderRowFooterRow.

于 2013-04-19T09:22:16.027 回答
0

除了 Tim 的回答(对于您的具体情况 100% 正确)之外,您还可以在类似情况下使用,即当您只想遍历所有可见行时:

gvGridViewExample.Rows
    .Where(Function(r) r.Displayed = True)  ' Apply filter
    .ToList()
    .ForEach(Function(x) x.DoSomething())  ' Do something...

或者

For Each row in gvGridViewExample.Rows.Where(Function(r) r.Displayed = True)
    row.DoSomething()
Next
于 2013-04-19T09:42:08.230 回答