jqGrid: как обновить идентификатор строки, если столбцы первичного ключа были отредактированы - PullRequest
0 голосов
/ 30 мая 2011

Значения первичного ключа используются в качестве идентификаторов строк в данных json, возвращаемых с сервера. Если значение первичного ключа редактируется и сохраняется два раза, второе сохранение вызывает ошибку, так как jqGrid снова передает исходное значение первичного ключа в метод редактирования.

Как обновить идентификатор строки jqGrid до нового значения первичного ключа, если значение первичного ключа изменяется во встроенном редактировании?

$(function () {
        var grid = $("#grid");
        grid.jqGrid({
                url: '<%= ResolveUrl("~/Grid/GetData?_entity=Strings")%>',
                datatype: "json",
                mtype: 'POST',
                scroll: 1,
                autoencode: true,
                colModel: [{
                    name: 'Source',
                    fixed: true,
                    editable: true,
                    width: 30
                }, { /* this is primary key passed also as id */
                    name: 'Est',
                    fixed: true,
                    editable: true,
                    width: 271
                }, {
                    name: 'Eng',
                    fixed: true,
                    editable: true,
                    width: 167
                }],
                gridview: true,
                pager: '#pager',
                viewrecords: true,
                editurl: '<%= ResolveUrl("~/Grid/Edit?_entity=Strings")%>',
        ...

Ответы [ 2 ]

4 голосов
/ 30 мая 2011

rowid - не более, чем значение id атрибута соответствующего <tr> элемента сетки. Таким образом, чтобы изменить rowid oldRowid на newRowid, вы должны сделать что-то вроде следующего:

$("#" + oldRowid).attr("id", newRowid);
0 голосов
/ 22 ноября 2012
#gridPreSeleccion = id grid
grid multiselect=true
function eliminarSeleccionados() {
    var idsContribuyentesSelect = jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow');
    if(idsContribuyentesSelect.length == 0) {
        jQuery.MessageAlertSath("Es necesario seleccionar una fila.")
    } else {
        var ids = jQuery("#gridPreSeleccion").jqGrid('getDataIDs');
        var a = ids.length;
        var j = 0;
        while(j == 0) {
            if(jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow').length <= 0) {
                j = 1;
            } else {
                for(var i = 0; i < a; i++) {
                    if(idsContribuyentesSelect[0] == ids[i]) {
                        jQuery('#gridPreSeleccion').delRowData(ids[i]);
                        break;
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...