Загрузка данных в сетку из ответа панели форм - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть форма со связанной сеткой, обслуживающей отношения один ко многим. Когда я загружаю форму, используя url, я также получаю данные сетки, используя следующий код

this.load({
        url:reportURL + 'editReport',
        waitMsg:'Loading...',
        params:{
            reportIdKey: this.reportId
        },
        success:function(form,action){                
            response = action.result.data; // Contains the data for the grid               
        }
    })

Возвращенный JSON выглядит следующим образом

{
"data":{
  "setupDt":"09-27-2011",
  "expireDt":"12-31-1950",
  "reportNm":"Report_55283",
  "templateNm":"risk_measures_tmpl",
  "GridData":
  *[
     {
        "sId":1,
        "sNm":"W",
        "mId":1,
        "mNm":"R",
        "pId":"..",
        "pIdAlias":"",
        "bId":"...",
        "bIdAlias":"",
        "pDesc":"FUND==GB|ACT==WG|W",
        "grpId":"",
        "scF":"",
        "sortSeq":1,
        "grpN":1
     }
  ]*      

как я могу загрузить данные сетки из вышеупомянутого json в мою сетку.

Пожалуйста, помогите .. }, «Успех»: «правда» }

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Сетки ExtJS используют магазин для обновления сетки.Магазин на самом деле требуется.Вы можете просто использовать json store .При получении звонка loadData против магазина при получении ответа.Причина, по которой вы будете использовать loadData вместо load, заключается в том, что форма уже выполнила вызов AJAX, и load попытается сделать это снова.Например (все это предполагает ExtJS 3.4, я не знаю, какую версию вы используете, но в ExtJS 4 это почти то же самое):

    var gridStore = new Ext.data.JsonStore({
        root: 'GridData',
        fields: [
            'sid',
            // ... your other field names under 'GridData'
        ]
    });
    var myGrid = new Ext.grid.GridPanel({
        store: gridStore,
        // ... your other config options here
    });
    this.load({
        url:reportURL + 'editReport',
        waitMsg:'Loading...',
        params:{
            reportIdKey: this.reportId
        },
        success:function(form,action){                
            response = action.result.data; // Contains the data for the grid
            gridStore.loadData(response);
        }
    });

После завершения loadData сетка будетавтоматически обновляется как часть обычных обработчиков событий load, которые присоединяются к хранилищу сеткой при ее создании.

0 голосов
/ 08 ноября 2011

Я работал, перебирая результат json и устанавливая соответствующее свойство в store.getRecordType ({field: value}).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...