2012-01-25 2 views
4

Вот мой код для создания jqGridКак динамически присваивать данные jqGrid?

$("#ptDataGrid").jqGrid({ 
        datatype: 'local', 
        data: arrSpecData, 
        colModel: colmod, 
        rowNum: 10, 
        rowList: [10], 
        pager: '#ptPager', 
        gridview: true, 
        rownumbers: false, 
        viewrecords: true, 
        loadonce:false, 
        hidegrid: false, 
        autowidth: true, 
        caption: 'Crank Pin', 
        height: '100%', 
       }); 

Тогда я ahve применять некоторые фильтры на мои данные и создали еще один массив с именем FilteredData. Теперь я хотел назначить этот новый источник данных моей сетке. Я пробовал все подходы, которые я знаю. Но ничего не получилось. Итак, как можно назначить новый источник данных для jqGrid динамически? Пожалуйста, предложите какой-либо способ назначить его.

   dataGrid.setGridParam({ data: filterdData }); 
       dataGrid[0].refreshIndex(); 
       dataGrid.trigger("reloadGrid"); 

Все тот же результат я получаю :(

Обход # 1:

$('#divGrid').children().remove(); 
$('#divGrid').html(' <table id="ptDataGrid" class="jqgriddata"><tr><td/></tr></table><div id="ptPager"></div> '); 

createGrid(filterdData,true); 
+0

Я не знаю, как вы протестировали мое предложение. В «ОБНОВЛЕНО» части моего ответа я приложил ворс к демонстрации, которая работает. – Oleg

+0

@ Олег, я тоже пробовал ваш подход. Но он не работал должным образом. Он отобразил обновленные результаты, а также предыдущие данные. – Dinesh

+0

Извините, но вы ошибаетесь! Он отображает * только обновленные данные *. Просто повторите свои эксперименты или посмотрите более внимательно на мою демонстрацию. Вы можете сохранить html-страницу, изменить данные из 'mydata1' и' mydata2' и увидеть, что она действительно работает. – Oleg

ответ

5

Вы можете сначала установить новый data с уважением setGridParam, а затем вызвать метод refreshIndex (см the answer) для обновления внутреннего параметра _index.

ОБНОВЛЕНО: Нажмите кнопку «Изменить данные» на the demo, чтобы убедиться, что подход работает.

+0

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

+0

@Dinesh: Вы публикуете только небольшие фрагменты кода, который вы используете, поэтому я не могу найти ошибку. jqGrid внутренне использует не более как установку 'data' и вызывает' refreshIndex'. Так что это правильный путь. Что именно не работает в вашей сетке? Ваша ошибка может быть в 'colModel' или в данных' arrSpecData', которые вы используете. Это самые важные части вашего вопроса. – Oleg

Смежные вопросы