有没有办法读取道场对象存储并将其转换为 JS 数组对象



寻找一种方法来读取DOJO增强网格对象存储中的所有行作为JS数组对象。

在 OnRowClick,我需要将所有项目作为一个数组获取。下面是示例代码:

布局,Id在另一种方法中定义。Id 是第一个标头。

在下面的代码中,存储是数据存储。

function constructEnhancedGrid(jsObject) {
require(
    ["dojo/store/Memory", "dojo/data/ObjectStore",
        "dojox/grid/EnhancedGrid",
        "dojox/grid/enhanced/plugins/Pagination", "dojo/domReady!"
    ],
    function(Memory, ObjectStore, EnhancedGrid, Pagination) {
        jsGlobalObject = jsObject;
        jsObject = JSON.parse(jsObject);
        var objectStoreMemory = new Memory({
            data: jsObject,
            idProperty: [tableheaders[0]]
        });
        dataStore = new ObjectStore({
            objectStore: objectStoreMemory
        });
        constructEnhancedGridlayout(tableheaders);
        if (typeof rtGrid === "undefined") {
            rtGrid = new EnhancedGrid({
                store: dataStore,
                structure: enhancedGridLayout,
                plugins: {
                    pagination: {
                        pageSizes: ["10", "25", "50", "100"],
                        description: true,
                        sizeSwitch: false,
                        pageStepper: true,
                        gotoButton: false,
                        maxPageStep: 5,
                        position: "top",
                        defaultPageSize: 20
                    }
                },
            }, "rtGrid");
            rtGrid.startup();
        } else {
            rtGrid.setStructure(enhancedGridLayout);
            rtGrid.setStore(dataStore);
            rtGrid.currentPage(1);
            rtGrid.render(dataStore);
            rtGrid.startup();
        }
        dojo.connect(rtGrid, "onRowClick", function(e) {
            dataStore.fetch({
                query: {},
                onComplete: function(items) {
                    var resArray;
                    dataStore.objectStore.get().then(function(result) {
                        resArray = result;
                    });
                }
            });
        });
    });
}

更新了答案

最初我假设你使用 JsonRest,但现在我看到你使用 Memory 对象来填充你的数据网格。内存实例具有属性data,其中包含一个数据数组。您可以直接在代码中访问它。

    grid.on("RowClick", function (e) {
            var data = this.store.objectStore.data;
        })
    });

相关内容

  • 没有找到相关文章

最新更新