2010-09-30 5 views
2

HI, Я использую afterSaveCell, который срабатывает, если мы модифицируем ячейку, тогда она срабатывает.Jgrid Сохранить ячейку при нажатии кнопки

Мой сценарий заключается в том, что я выполняю пакетное обновление базы данных при сохранении кнопки изменения. Но когда пользователь редактирует ячейку и попадает в другую ячейку, я регистрирую модификацию в массиве.

Но если пользователь отредактировал ячейку и нажал кнопку «Сохранить изменения», фокус ячейки не потерялся (все еще в режиме редактирования) и afterSaveCell не уволили.

Есть ли способ, чтобы стрелять Сохранить ячейку на buttojn нажмите так, чтобы afterSaveCell получить пожары.

Пожалуйста, помогите .. спасибо ..

ответ

3

Вы можете вызвать saveCell метод. Этот метод имеет параметры iRow и iCol. Чтобы узнать эти параметры для текущей редактируемой ячейки, вы можете добавить afterEditCell в сетку. Таким образом, вы сохраняете последние значения iRow и iCol в переменной вне jqGrid и используете там внутри события on click на кнопке «Сохранить изменения», где вы вызываете saveCell с этими параметрами.

+0

Спасибо, что его работа очень прекрасна ... – Shivi

+0

Хорошо .. я буду помнить ... Спасибо – Shivi

0
// This worked Perfectly fine for me, hope will work for you as well. 
var selectedCellId; 
    var $gridTableObj = $('#jqGridTable'); 
    $gridTableObj.jqGrid({ 
     datatype : "jsonstring", 
     datastr : gridJSON, 
     height : ($(window).height() - 110), 
     width : ($(window).width() - 80), 
     gridview : true, 
     loadonce : false, 
     colNames : columnNames, 
     colModel : columnModel, 
     rowNum : gridJSON.length, 
     viewrecords : true, 
     subGrid : false, 
     autoheight : true, 
     autowidth : false, 
     shrinkToFit : true, 
     cellsubmit : 'clientArray', 
     cellEdit : true, 
     jsonReader : { 
      root : "rows", 
      repeatitems : false 
     }, 
     onCellSelect : function(id, cellidx, cellvalue) { // use this event to capture edited cellID 
      selectedCellId = cellidx; // save the cellId to a variable 
     }, 
     loadComplete : function(data) { 
      jQuery("tr.jqgrow:odd").addClass("oddRow"); 
      jQuery("tr.jqgrow:even").addClass("evenRow"); 
     } 
    }); 

// Прикрепите к событию click jqgrid «saveCell», чтобы сохранить ячейку.

var gridCellWasClicked = false; 
window.parent.document.body.onclick = saveEditedCell; // attach to parent window if any 
document.body.onclick = saveEditedCell; // attach to current document. 
function saveEditedCell(evt) { 
    var target = $(evt.target); 
    var isCellClicked = $gridTableObj.find(target).length; // check if click is inside jqgrid 
    if(gridCellWasClicked && !isCellClicked) // check if a valid click 
     { 
     var rowid = $gridTableObj.jqGrid('getGridParam', 'selrow'); 
    $gridTableObj.jqGrid("saveCell", rowid, selectedCellId); 
    gridCellWasClicked = false; 
    } 
    if(isCellClicked){ 
     gridCellWasClicked = true; // flat to check if there is a cell been edited. 
    } 
}; 
Смежные вопросы