Невозможно щелкнуть флажок Dojo Grid

Я пытаюсь создать сетку Dojo с флажком (несколько столбцов отмечены флажком), и я пытаюсь сделать так, чтобы они всегда редактировались.

Я использовал 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

Нужно ли мне подключать событие клика вручную?


person Nap    schedule 03.01.2014    source источник


Ответы (1)


Я как-то получил ответ.

Я просто следовал примеру учебника codeproject здесь.

По сути, я использовал хранилище памяти и объект хранилища кеша. Прежде чем я просто напрямую свяжу хранилище 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.

Надеюсь, это поможет кому-то.

person Nap    schedule 06.01.2014