我正在尝试使用复选框创建一个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
我是否需要手动连接点击事件?
答案 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存储。
希望这有助于某人。