jqgrid EditActionIconsColumn 事件 [英] jqgrid EditActionIconsColumn Events

查看:18
本文介绍了jqgrid EditActionIconsColumn 事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在网格中有一个带有 EditActionsIconsColumn 的 jqgrid,但我正在尝试获取 Edit、Del 和 Submit 上的点击事件.谢谢

I have a jqgrid with EditActionsIconsColumn available to me in the grid but I am trying to get a hold of the click events on the Edit, Del and Submit. Thanks

推荐答案

formatter:'actions' 还没有很好的文档记录.jqGrid 3.8.2 的当前版本支持您需要的一些选项.在 jquery 的 第 394-466 行中.当前版本的 fmatter.js 可以查看更多.

The formatter:'actions' is not yet good documented. The current version of jqGrid 3.8.2 support some options which you need. In lines 394-466 of the jquery.fmatter.js of the current version you can see more.

您需要的是 onEditafterSave(在提交"上)和 delOptions.onclickSubmit 参数.

What you need are onEdit, afterSave (on "Submit") and delOptions.onclickSubmit parameters.

说实话我之前没有使用过'actions'格式化程序并自己理解它写演示 也解决了您的所有问题.为了让其他更容易找到示例,在此处包含代码中最重要的部分:

To tell the truth I didn't use the 'actions' formatter before and to understand it myself write the demo which solve also on all your questions. To make other easier to find the example in include the most important part of the code here:

var grid = $("#list");
grid.jqGrid({
    datatype: "local",
    data: mydata,           // init local data which will be edited
    editurl: 'clientArray', // we will use local editing
    colNames:['Actions', ... ],
    colModel:[
        {name:'act',index:'act',width:55,align:'center',sortable:false,formatter:'actions',
         formatoptions:{
             keys: true, // we want use [Enter] key to save the row and [Esc] to cancel editing.
             onEdit:function(rowid) {
                 alert("in onEdit: rowid="+rowid+"
We don't need return anything");
             },
             onSuccess:function(jqXHR) {
                 // the function will be used as "succesfunc" parameter of editRow function
                 // (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)
                 alert("in onSuccess used only for remote editing:"+
                       "
responseText="+jqXHR.responseText+
                       "

We can verify the server response and return false in case of"+
                       " error response. return true confirm that the response is successful");
                 // we can verify the server response and interpret it do as an error
                 // in the case we should return false. In the case onError will be called
                 return true;
             },
             onError:function(rowid, jqXHR, textStatus) {
                 // the function will be used as "errorfunc" parameter of editRow function
                 // (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)
                 // and saveRow function
                 // (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#saverow)
                 alert("in onError used only for remote editing:"+
                       "
responseText="+jqXHR.responseText+
                       "
status="+jqXHR.status+
                       "
statusText"+jqXHR.statusText+
                       "

We don't need return anything");
             },
             afterSave:function(rowid) {
                 alert("in afterSave (Submit): rowid="+rowid+"
We don't need return anything");
             },
             afterRestore:function(rowid) {
                 alert("in afterRestore (Cancel): rowid="+rowid+"
We don't need return anything");
             },
             delOptions: {
                 // because I use "local" data I don't want to send the changes to the server
                 // so I use "processing:true" setting and delete the row manually in onclickSubmit
                 onclickSubmit: function(rp_ge, rowid) {
                     // we can use onclickSubmit function as "onclick" on "Delete" button
                     alert("The row with rowid="+rowid+" will be deleted");

                     // reset processing which could be modified
                     rp_ge.processing = true;

                     // delete row
                     grid.delRowData(rowid);
                     $("#delmod"+grid[0].id).hide();

                     if (grid[0].p.lastpage > 1) {
                         // reload grid to make the row from the next page visable.
                         // TODO: deleting the last row from the last page which number is higher as 1
                         grid.trigger("reloadGrid", [{page:grid[0].p.page}]);
                     }

                     return true;
                 },
                 processing:true // !!! the most important step for the "local" editing
                                 //     skip ajax request to the server
             }
         }},
        ...
    ],
    ...
});

这篇关于jqgrid EditActionIconsColumn 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆