当您参加RowDatabound事件时,有没有办法访问另一行中的元素?

public void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    // how to compare e.Row with row above or row below?
}
有帮助吗?

解决方案

我认为您可以做的一件事是...

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

我相信RowDatabound以与数据源所包含的顺序相同的顺序添加行,因此,如果您的数据表中有100个记录,并且您将该数据绑定到GridView,则RowDatabound被称为100次,每行被称为100次它们存在于数据表中。因此,您提到使用rowdatabound将e.row与上面的行或下面的行进行比较...但是如果它们顺序排列,则没有下面的行。这是我以前从未真正考虑过的事情,但是我记得在使用这种方式进行的断点进行测试时。

如果您无法获得类似的工作,即使它不漂亮,也没有得到任何更好的答案,就需要发生这种情况,您可以存储数据栏数据的副本,或者您的数据源已进入ViewState或会话变量,例如ViewState [“ MyDataTable”]。然后,您可以在RowDatabound事件上检索数据表,并查看E.Row表示的行上方和下方的行(前提是您具有某种光标,例如ID来识别行)。通过这样做,您可以查看将通过RowDatabound添加到GridView的下一行,因为它将是数据词中的下一行(已经存在并且可以查看)。

但是,如果您要大规模做事,我想所有这些循环可能会变得笨拙。

其他提示

从有雾的记忆中,您可以参考 GridView一系列 Row从那里开始迭代他们。无论如何,您应该能够获得E的位置和访问,无论如何,我想到那时还不是数据库,除非这是一行重新启动,否则它们还不是数据库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top