【发布时间】:2012-09-27 13:01:08
【问题描述】:
我知道如何遍历网格视图行:
foreach (GridViewRow oItem in GridView1.Rows)
{
//
}
但是如果我启用 paging ,我想要做的是遍历整个网格视图,包括其他页面中的行。
如何做到这一点?
【问题讨论】:
-
为什么不直接遍历数据源?
标签: c# asp.net loops gridview data-paging
我知道如何遍历网格视图行:
foreach (GridViewRow oItem in GridView1.Rows)
{
//
}
但是如果我启用 paging ,我想要做的是遍历整个网格视图,包括其他页面中的行。
如何做到这一点?
【问题讨论】:
标签: c# asp.net loops gridview data-paging
@just_name,您需要记住,对 GridViewRow 等服务器端对象的任何操作都是处理数据的最糟糕方式。如果您需要任何数据驱动的操作 - 在数据源中进行,而不是在视图中进行。
【讨论】:
您可以使用Cast<T> 或OfType<T> 转换为IEnumerable<T>:
foreach (GridViewRow oItem in GridView1.Rows.OfType<GridViewRow>())
{
}
或者:
foreach (GridViewRow oItem in GridView1.Rows.Cast<GridViewRow>())
{
}
在这种情况下,两者都使用是正确的,因为Rows 只包含GridViewRow 的元素。但是你不应该注意到两种方法之间的区别:
Cast<T>:将元素转换为指定类型。
OfType<T>:过滤基于指定类型的元素。
【讨论】:
1 而不是 5 !!!我想遍历整个页面,而不仅仅是选定的页面。