2015-03-09 1 views
0

У меня есть сетка ExtJs с тремя столбцами (с третьим столбцом, являющимся статусом). Первые два столбца загружаются для хранения и заполнения сетки. И третий столбец зависит от первых двух столбцов. Я не могу создать новый магазин для третьего столбца.ExtJs Grid, заполняющий столбец через ajax в рендерере

Можно ли сделать ajax-вызов в рендерере для заполнения третьего столбца? Я знаю, что средство визуализации синхронно. Есть ли способ достичь этого? Любой пример заслуживает высокой оценки.

function renderStatus(value) { 
    var statusAjaxOnSuccessCallback = function (serverStatus) { 
     //debugger;   

     grid.getStore().each(function (rec) { 
      rec.set('Status', 'After Ajax');    
     });    
    }; 
    callAjax(statusAjaxOnSuccessCallback); 
    //return 'BeforeAjax'; 
} 

ответ

1

Просто настроить сетку в обычном порядке с колонной третьей сетки, связанной с dataIndex вашего третьего столбца в магазине.

Всякий раз, когда вы устанавливаете значение третьего столбца для строк в вашем магазине, что вы можете сделать с помощью обработчика успеха AJAX, сетка автоматически обновит и покажет это новое значение.

+0

Я добавил функцию рендеринга третьего столбца выше. Я обновляю магазин, но он не отражается в пользовательском интерфейсе. Я что-то упускаю? –

+0

Когда вы вызываете эту функцию renderStatus? – mindparse

+0

столбцы: [ selectorModel, {header: 'Name', width: 300, sortable: true, dataIndex: 'Name', renderer: renderName}, {header: 'Dept', width: 300, sortable: true, dataIndex: 'Dept', renderer: renderDept}, {header: 'Status', width: 250, sortable: true, dataIndex: 'Status', renderer: renderStatus} ] –

0

Вот как я решил проблему.

  1. Подписаться на загрузку мероприятия в сетке.
  2. В этом случае активируйте запрос ajax, чтобы получить значение для третьего столбца.
  3. В событии onsuccess запроса ajax обновите хранилище сетки, и значение автоматически отобразится.
  4. Установите меткуDirty экрана viewconfig сетки на значение false, чтобы столбец не отображал грязную метку.
Смежные вопросы