Dojo Grid CheckBox无法单击

时间:2014-01-03 08:13:40

标签: javascript checkbox dojo dojox.grid jsonreststore

我正在尝试使用复选框创建一个Dojo Grid(多列是复选框),我试图让它们始终编辑。

我使用了type = dojox.grid.cells.Bool但是我认为它不允许我点击复选框,我试着看看http请求上发生了什么,它似乎每次点击时发送未定义的参数复选框。我不确定如何在JsonRestStore中添加其他方法,是否还需要其他方法?

以下是代码:

require([
    "dojox/grid/DataGrid",
    "dojo/store/JsonRest",
    "dojo/data/ObjectStore",
    "dijit/form/Form",
    "dojo/domReady!"
], function(DataGrid,JsonRestStore,ObjectStore,dijitForm, request){
    SalesFormGridStore = new JsonRestStore({target:"/sales/SalesForm/DataRequestedDojoGrid/", idProperty: "OrderNo"});
    SalesFormGridDataStore = new ObjectStore({objectStore: SalesFormGridStore});
    SalesFormGridStructure = {
        cells: [
            // Column definitions start...
            { 
                name: 'Delivery?', 
                field: 'DeliveryFlag', 
                width: '40px', 
                styles: 'text-align: center;', 
                editable: true, 
                alwaysEditing: true, 
                type: dojox.grid.cells.Bool, 
                editor: dojox.grid.cells.CheckBox
            } 
            // Column definitions end....
        ]
    };
    SalesFormGridGrid = new DataGrid({
        store: SalesFormGridDataStore,
        structure : SalesFormGridStructure,
    }, "SalesFormGrid");
    SalesFormGridGrid.startup();
});

当表单加载或滚动到范围之外时,它会请求正常查询。

/sales/SalesForm/DataRequestedDojoGrid/

但是当我点击复选框时,它不允许我点击它,它只是请求以下请求。

/sales/SalesForm/DataRequestedDojoGrid/1

/sales/SalesForm/DataRequestedDojoGrid/2

我是否需要手动连接点击事件?

1 个答案:

答案 0 :(得分:0)

我以某种方式得到了答案。

我刚刚关注了codeproject教程here的示例。

基本上,我使用了内存存储和缓存存储对象。在我直接将json存储链接到对象存储之前。

SalesFormGridMemoryStore = new MemoryStore({ idProperty: "SalesNo" });
SalesFormGridJsonStore = new JsonRestStore({target:"/sales/SalesForm/DataRequestedDojoGrid/", idProperty: "SalesNo"});
SalesFormGridCacheStore = new CacheStore(SalesFormGridJsonStore, SalesFormGridMemoryStore);
SalesFormGridObjectStore = new ObjectStore({objectStore: SalesFormGridCacheStore});

由于之前没有缓存和内存存储,所有编辑都需要直接发送到主存储器,这是json存储。

希望这有助于某人。