2011-11-30 82 views

回答

1

一两件事,我觉得你可以做的是...

foreach (GridViewRow gvrow in GridView1) 
{ 
    //loop through gridview's rows and find the row you're looking for 
} 

相信的RowDataBound添加行以相同的顺序数据源中有他们,因此,如果有100个记录在你的数据表并且将该DataTable绑定到GridView,RowDataBound将按照它们在DataTable中存在的顺序为每一行调用100次。因此,您提到使用RowDataBound将e.Row与上面的OR行或上面的行进行比较......但如果它们按顺序进入,则下面没有行。这是我以前没有真正想过的,但我记得在做断点测试时RowDataBound以这种方式运行。

如果你不能得到那样的工作,并且即使它不漂亮并且没有得到任何更好的答案,也需要这样做,那么可以存储你的数据绑定数据表的副本或任何源代码对于数据是ViewState或Session变量,比如ViewState [“myDataTable”]。然后,您可以检索RowDataBound事件上的DataTable,并查看由e.Row表示的行上下的行(假设您有某种类型的光标,如ID来标识行)。通过这样做,您可以查看RowDataBound将添加到GridView的下一行,因为它将成为DataTable中的下一行(已存在并且可以查看)。

如果你在做大规模的东西,但我想所有这些循环都会变得麻烦。

+0

嗨CptSupermrkt,非常感谢您的意见。我做了你的建议 - 只需在数据绑定之后通过gridview循环,而不是在RowDataBound中尝试这样做。它增加了一些额外的代码行,但很好地工作。再次感谢 :) – S200

1

从雾存储器,可以从那里引用GridView的阵列的 S和迭代它们。你应该能够得到e的位置,并在任何情况下访问上面的行,不知道下面的行,因为它们不是数据绑定,但我想,除非这是一行重新绑定的镜头。

+0

嗨favoretti,我结束了循环访问数据绑定后,而不是试图在ItemDataBound中执行gridview。谢谢你的建议 :)。 – S200

+0

干杯,很好,你找到你的解决方案:) – favoretti

相关问题