代码之家  ›  专栏  ›  技术社区  ›  Neel Basu

dojox.enhancedgrid获取选定行

  •  4
  • Neel Basu  · 技术社区  · 15 年前

    如何获取dojox.enhancedgrid的选定行对象? 我使用的是SelectionMode:'single' 例如,带有单选按钮。

    dijit.byId("gridViewWidget").selection.selectedIndex 返回行索引。 但是如何获取该索引的rowobject呢? 我可以得到 rowNode() 但我需要的是该行的id列的值。

    可以遍历返回的HTML DOM 罗诺德() 但是有没有直行的路?

    我正在使用 dijit.byId("gridViewWidget").store._dataArray[i] 并传递返回的索引。虽然这是可行的,但它似乎是一个私有属性。 那么使用安全吗?

    2 回复  |  直到 9 年前
        1
  •  5
  •   cнŝdk    9 年前

    我对Dojo是个新手,但如果不是完全正确的话,这应该是有用的。首先, dojox.grid.enhancedGrid 是建立在 dojox.grid.DataGrid ,请查看以下文档:

    dojox.grid.DataGrid Documentation

    • grid.getItem(idx) 返回给定索引处的存储区“item”

    • grid.selection.getSelected() 返回选定项的数组

    您应该能够使用其中任何一个来获得您想要的项目。

        2
  •  0
  •   eskwayrd    15 年前

    使用声明性标记,您可以执行如下操作(从内存中,可能需要进行一些调整才能正常工作):

    <script type="text/javascript">
    function formatThisColumn(rowIndex, rowObject) {
        if (rowObject == null) return;
        field = rowObject.i.fieldName;
        return field;
    }
    </script>
    <div dojoType="dojo.data.ItemFileReadStore" id="store" jsid="jsonStore" url="test.json"></div>
    <table dojoType="dojox.grid.EnhancedGrid" id="gridNode" jsid="grid" store="store">
    <thead>
    <tr>
      <th get="formatThisColumn">A Computed Column</th>
    </tr>
    </thead>
    </table>
    

    注意“formatThisColumn”函数:它在DataGrid中每行至少调用一次,并传递该行的索引(在JSON项中)和包含“current”项的对象(使用“i”索引)。这将在呈现DataGrid时从JSON响应中提供原始值。