jqGrid перезагрузит другие сетки после редактирования - PullRequest
0 голосов
/ 28 ноября 2011

Во-первых, я прошу прощения за мой английский.

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

Я использовал .trigger("reloadGrid");, но это не похоже на работу.

Как мне этого добиться? пожалуйста помоги. большое спасибо.

Это jqGrid:

$('#diag').jqGrid({
        url: 'ajax/ajax-diag.php',
        data: 'xml',
        mtype: 'GET',
        colNames: ['Job', 'Client', 'Status', 'Notes'],
        colModel: [
            { name: 'jobnumber', index:'jobnumber', align:'center', width: 70, editable:true},
            { name: 'clientid', index:'clientid', align:'center', width: 70, editable:true  },
           { name: 'statuslabel', index:'statuslabel', align: 'center', width: 125, editable:true},            
            { name: 'notes', index: 'notes', align: 'center', editable: true }
        ],
        loadComplete: function() {

            if ($('#diag').getGridParam("records") == 0) {
                $('#diag').hide();              
            }            
        },        
        pagination: true,
        pager: '#diagpager',
        rowNum: 10,
        rowList: [10,20,30],
        sortname: 'jobnumber',
        width: '100%',
        height: '100%',        
        sortorder: 'desc',
        viewrecords: true,
        closeOnEscape: true,
        gridview: true,
        editurl: "ajax/ajax-edit.php",
        caption: 'Stage 1'        
    });
$('#diag').jqGrid('navGrid', '#diagpager',{},{closeAfterEdit:true},{closeAfterAdd:true});

Я тоже пользуюсь навигатором.

РЕШИТЬ: Благодаря Мануэлю ван Рейну я нашел правильный параметр для пейджера навигатора.

Это мой последний пейджер:

$('#diag').jqGrid('navGrid', '#diagpager',{},{
            closeAfterEdit:true,
            afterComplete:function() { $('#twoRec').trigger('reloadGrid')}
        },{closeAfterAdd:true});

Ответы [ 2 ]

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

Вы можете попробовать это:

$('#diag').jqGrid('setGridParam', { datatype: 'xml' }).trigger('reloadGrid');

Существуют определенные настройки jqGrid, которые могут быть установлены, чтобы предотвратить повторное попадание сетки на сервер.Одним из них является datatype.Другой это loadonce.

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

попробуйте

$("#gridId").jqGrid().trigger("reloadGrid");

UPDATE

$('#diag').jqGrid('navGrid', '#diagpager',{
    afterRefresh: function() {
        $("#otherGrid").jqGrid().trigger("reloadGrid");
    }
},{closeAfterEdit:true},{closeAfterAdd:true});

// above seems to work only when hitting the refresh button

ОБНОВЛЕНИЕ 2

$('#diag').jqGrid('navGrid', '#diagpager',{
    editfunc: function(rowId) {
        ('#grid_id').editRow(id, true, false, reloadGrids); 
    }
},{closeAfterEdit:true},{closeAfterAdd:true});

function reloadGrids() {
    $("#otherGrid").jqGrid().trigger("reloadGrid");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...