有没有更简单的方法来使用代码:
For Each gvRow As GridViewRow In gvGridviewExample.Rows
If gvRow.RowType = DataControlRowType.DataRow Then
'Do Something
End If
Next
例如在使用iEnumerable时你理论上(伪代码样式)添加一个:
gvGridviewExample.Where(Function(chR) chR.Row = DataRow)
我只是想知道是否有更简单的编码方式?
谢谢,
Firstcape
答案 0 :(得分:3)
除了您的第一个片段实际 非常简单明了之外,Rows
的{{1}}属性仅返回 GridView
< / strong>即可。所以你根本不需要检查类型。
DataRows
属性(集合)用于存储数据行 GridView控件。仅将RowType属性设置为的行
Rows
存储在Rows集合中。该 GridViewRow对象,表示页眉,页脚和寻呼机行 不包括在集合中。
您只能在DataControlRowType.DataRow
或RowCreated
等活动中使用不同的类型。如果您想要访问这些事件之外的页眉,页脚或寻呼机,您可以使用RowDataBound
的相应属性,例如GridView
或HeaderRow
。
答案 1 :(得分:0)
除了Tim的回答(对于您的具体情况100%正确),您可以在类似情况下使用linq,即当您只想迭代所有可见行时:
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