ExtJS - DWR прокси с магазином json? - PullRequest
1 голос
/ 29 апреля 2011

Я пытаюсь заставить JsonStore использовать функцию, которая принимает аргументы и выполняется асинхронно, но я не уверен, как это сделать.

myMethod занимает callback, нокак связать данные обратного вызова с JsonStore?

store = new Ext.data.JsonStore({
    proxy: new Ext.data.DirectProxy(
    {
        directFn:(new function(){return MyDwrService.myMethod('test')}),
    }),
    autoLoad:true,...

Я пытался использовать реализацию DwrProxy, но теперь, когда я не передаю fields в JsonReader, данные не заполняютсямоя сетка, и когда я делаю проход fields, создается куча пустых строк.Что дает?

   store = new Ext.data.Store({
        proxy: new Ext.ux.data.DwrProxy({
            apiActionToHandlerMap:{
                read: {
                    dwrFunction: MyService.myMethod,
                    getDwrArgsFunction: function() {
                        return ["testUser"]
                    }
                }
            }
        }),
        reader: new Ext.data.JsonReader({fields:myFields}),
        autoLoad:true,
    fields:myFields,
    remoteSort:true
});

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Вам обязательно нужно включить поля в ридер, но я не понимаю, почему есть пустые строки.Я почти уверен, что мы не получим никаких пустых записей - возможно, allowBlank: false сортирует их ... если это нужно, это наш код:

var myReader = new Ext.data.JsonReader({
    root : 'objectsToConvertToRecords',
    idProperty: 'id',
    fields : [
        {name: 'id', allowBlank:false},
        {name: 'foo', allowBlank:false},
        {name: 'bar', allowBlank:false}
    ]
});

var dwrProxy = new Ext.ux.data.DwrProxy({
    apiActionToHandlerMap : {
        read : {
            dwrFunction : RemoteClass.remoteReadMethod,
            getDwrArgsFunction: function(request, newData, oldData) {
                return [request.params.myId];
            }
        }
        create : {
            dwrFunction : RemoteClass.remoteCreateMethod,
            getDwrArgsFunction: function(request, newData, oldData) {
                return [newData];
            }
        }
        update : {
            dwrFunction : RemoteClass.remoteUpdateMethod,
            getDwrArgsFunction: function(request, newData, oldData) {
                return [newData];
            }
        }
        destroy : {
            dwrFunction : RemoteClass.remoteDestroyMethod
        }
    }
});

var store = new Ext.data.Store({
     proxy: dwrProxy,
    reader: myReader,
    writer : myWriter,
    autoLoad : true,
    autoSave: true,
    baseParams: { tiploc: this.tiploc }
})
0 голосов
/ 02 мая 2011

Используйте DWR3 с включенным JSONP, и вам не нужен прокси.

...