【问题标题】:What is difference between RowIndex and DataItemIndex?RowIndex 和 DataItemIndex 有什么区别?
【发布时间】:2011-05-17 15:10:16
【问题描述】:

在gridview’s RowDataBound 事件中具有e.Row.RowIndex 和e.Row.DataItemIndex 属性。
请用通俗易懂的答案告诉我,它们之间有什么区别?
在什么情况下我们应该使用哪一个?

【问题讨论】:

    标签: asp.net gridview rowdatabound


    【解决方案1】:

    使用DataItemIndex 属性确定基础数据集中的数据项的索引。
    使用 RowIndex 属性确定 GridViewRow 对象在 GridView 控件的 Rows 集合中的索引。

    【讨论】:

    • 对于 girdview 中的特定行,这两者的值将相同还是不同?
    • 别搞混了DataItemIndex是DataSet的财产,RowIndex是Giridview的财产。
    • 如果你使用分页,它们是不同的。然后DataItemIndex 将从第一页的开头返回索引,RowIndex 将为您提供该特定页面的索引。如果您想在RowCommand 事件中使用数据项,这一点非常重要。
    【解决方案2】:

    e.Row.RowIndex返回当前绑定行的索引

    e.Row.DataItemIndex 包含当前绑定的行的所有数据索引。

    【讨论】:

    • 对于 girdview 中的特定行,这两个值是相同还是不同?
    • 他们可能有不同的索引。您只需要了解可以使用的方式和位置的逻辑。
    【解决方案3】:

    DataItemIndex 是底层DataSet 中DataItem 的索引。是的

    RowIndex 是底层 GridView 中 Row 的索引。是的

    但是差别很大

    例如,如果您的 girdview 的页面大小为 10 行,那么每个页面的 RowIndex 始终为 0-9,但是当您转到其他页面时 DataItemIndex 会有所不同,例如 PageIndex 2,3,4 ... On第 2 页 DataItemIndex 将在 10-19 之间,但 RowIndex 仍为 0-9。

    【讨论】:

      【解决方案4】:

      不同之处可能在于“e.Row.DataItemIndex”仅适用于 DataItem;表示此属性仅适用于数据行,其中“e.Row.RowIndex”可以用于数据行、标题行等。

      RowIndex 是渲染表中当前可见的行。 DataItemIndex 是实际项目的索引;它们都会在当前显示的记录集中显示记录的索引。

      【讨论】:

      • 对于 girdview 中的特定行,这两个值是相同还是不同?
      猜你喜欢
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      • 2011-11-22
      • 2015-03-26
      • 2013-08-19
      相关资源
      最近更新 更多