2010-06-16 64 views
4

如何获取dojox.enhancedGrid的选定行对象? 我正在使用selectionMode:'single' 与单选按钮。dojox.enhancedGrid获取所选行

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

它可以驯化由rowNode()返回的HTML DOM但是有没有简单的方法?

我目前使用dijit.byId("gridViewWidget").store._dataArray[i]并传递返回的索引。虽然这工作似乎_dataArray是一个私人财产。 所以使用安全吗?

回答

5

我是新来的道场我自己,但这应该是有用的,如果不是完全正确的。首先,dojox.grid.enhancedGrid是建立在dojox.grid.DataGrid顶部,因此,请检查这里的文档:给定索引

  • grid.selection.getSelected()返回在

    dojox.grid.DataGrid Documentation

    • grid.getItem(idx)回到店里“项”所选项目排列

    您应该能够使用其中任何一种来获得你想要的物品。

  • +0

    嗯我试过了但是没有选择对象上名为'getItem(idx)'或'getSelected()'的这种方法。 我对数据网格和增强网格的选择对象是不同的。 – 2010-06-18 16:33:54

    +0

    嗯,那可能是。就像我说的那样,我没有专家......而且文件也是误导性的......好运! – Dfowj 2010-06-18 21:29:46

    0

    使用声明标记,你可以做这样的事情(从内存中,可能需要调整是功能性):

    <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项目内)和包含'当前'项目(使用'我'索引)的对象的索引。当数据网格被渲染时,这将为您提供JSON响应的原始值。