首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮单击时Jgrid保存单元格

按钮单击时Jgrid保存单元格
EN

Stack Overflow用户
提问于 2010-09-30 14:22:26
回答 2查看 2.9K关注 0票数 2

嗨,我使用的是afterSaveCell,如果我们修改了单元格,那么它就会触发。

我的场景是在保存更改按钮时对数据库进行批量更新。但是当用户编辑单元格并到达另一个单元格时,我将修改记录在一个数组中。

但是,如果用户编辑单元格并单击Save Change按钮,单元格焦点不会丢失(仍处于编辑模式),afterSaveCell也不会触发。

有没有什么方法可以触发Save the cell on buttojn click,这样afterSaveCell get就会触发。

求求你,帮帮我。谢谢..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-30 15:45:37

您可以调用saveCell方法。此方法以iRowiCol作为参数。要了解当前可编辑单元格的this参数,可以向网格添加afterEditCell。因此,您将iRowiCol的最后一个值保存在jqGrid外部的一个变量中,并在“保存更改”按钮上的单击事件中使用该变量,在该按钮中,您可以使用这些参数调用saveCell

票数 3
EN

Stack Overflow用户

发布于 2014-10-21 15:15:19

代码语言:javascript
复制
// 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");
        }
    });

//单击事件jqgrid "saveCell“时附加以保存该单元格。

代码语言:javascript
复制
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.
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3828261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档