2016-01-15 1 views
0

Мне нужно получить содержимое строки или содержимое ячейки перед редактированием, чтобы я мог передать ее на данные сообщения. в основном мне нужно сравнить значения до и после редактирования и отправить их в базу данных. это мой код, но ячейка beforeEdit не срабатывает.jqGrid сравнить значения до и после ячейки или строки редактирования

Grid.jqGrid({ 
    url   : URL, 
    editurl  : UpdURL, 
    mtype  : "POST", 
    postData : {'action':'wk','ID':ID}, 
    datatype : "JSON", 
    page  : 1, 
    regional : lang, 
    beforeEditCell : getCellCurrentValue, 
    idPrefix : "w_", 
    colNames : WkColName[lang], 
    colModel : [ 
        { name: 'ID', width: 25, hidden: true }, 
        { name: 'c_ID', key:true, editable: true, width: 20, editrules : { required: true, integer:true, minValue:1} }, 
        ], 
    autowidth : true, 
    height  : 445, 
    rowNum  : 20, 
    caption  : GridCaption, 
    shrinkToFit : true, 
    sortorder : "asc", 
    hidegrid : false, 
    gridview : true, 
    pgbuttons : false, 
    pgtext  : null, 
    viewrecords : false, 
    pager  : GridPager, 
}) 
.inlineNav(GridPager,{edit: true, add: true, del: false, cancel: true, refresh : false, 
           editParams: {keys: true,extraparam: {'action':'wk', 'ID': ID, 'oldwk' : oldwkValue}}, 
           addParams: {position: 'last', 
               addRowParams:{ 
               keys:true, 
               extraparam:{'action':'wk','ID':ID}, 
                  successfunc: function() { 
                   var $self = $(this); 
                   setTimeout(function() { 
                    $self.trigger("reloadGrid"); 
                   }, 50); 
                  } 
               } 
              } 
          }); 
var lastWkselRowContent; 
var oldWkValue; 
function getCellCurrentValue(id) { 
    if (id && id !== lastWkselRowContent) { 
     oldWeekValue = Grid.jqGrid('getCell',id,'ID'); 
     lastWkselRowContent = id; 
     return oldWkValue; 
    } 
} 

ответ

0

Самый простой способ может быть использование beforeSaveRow изменить extraparam динамически и добавить дополнительную информацию, которую вам нужно. Вы можете включить обратный вызов в editParams и addRowParams. Первые два параметра обратного вызова beforeSaveRow: options и rowid. Объект options содержит extraparam Свойство, свойства которого вы можете продлить. Старую строку вы найдете внутри savedRow, которая является параметром jqGrid. Я думаю, вы можете найти нужную информацию под номером savedRow[0].ID.

beforeSaveRow: function (options, rowid) { 
    var p = $(this).jqGrid("getGridParam"); 
    // modify extraparam 
    options.extraparam.oldwk = p.savedRow[0].ID; 
    // to be exact one can search p.savedRow array 
    // for the item which have p.savedRow[i].id === rowid, 
    // but if only one row is editing at the same time then 
    // the array p.savedRow have only one element and 
    // p.savedRow[0] have the old values: c_ID and ID 
    // and p.savedRow[0].id === rowid 
} 
Смежные вопросы