Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jqGrid计算客户端的总列数?_Jqgrid - Fatal编程技术网

如何使用jqGrid计算客户端的总列数?

如何使用jqGrid计算客户端的总列数?,jqgrid,Jqgrid,我正在尝试使用jqGrid实现一个简单的电子表格。这些是网格列: ID | Name | LastName | Data1 | Data2 |总计(总计为Data1+Data2) 我的javascript代码如下所示: $(function() { var lastsel; jQuery("#my_excel_grid").jqGrid({ url:'data_excel.php', datatype: "json",

我正在尝试使用jqGrid实现一个简单的电子表格。这些是网格列:

ID | Name | LastName | Data1 | Data2 |总计
(总计为Data1+Data2)

我的javascript代码如下所示:

$(function() {    
 var lastsel;

        jQuery("#my_excel_grid").jqGrid({

            url:'data_excel.php',
            datatype: "json",
            colNames:['id','name', 'lastname', 'data1','data2','total'],
            colModel:[
                {name:'id',index:'id', width:55, sortable:false},
                {name:'name',index:'name', width:90},
                {name:'lastname',index:'lastname', width:100},
                {name:'data1',index:'data1', width:80, align:"right", editable:true},
                {name:'data2',index:'data2', width:80, align:"right", editable:true},       
                {name:'total',index:'total', width:80,align:"right",
                        formatter: function (cellvalue, options, rowObject) 
                             {
                                 // Harcoded index won't work in the real life excel grid
                                 //        since the columns will be populated dynamically
                                 return parseInt(rowObject[3]) + parseInt(rowObject[4]);
                              }
                },      
            ],
            rowNum:10,
            rowList:[10,20,30],
            pager: '#my_excel_pager',
            sortname: 'id',
            sortorder: "desc",
            caption:"Excel",          
            editurl:"data_excel.php?op=edit",          

            onSelectRow: function(id) {
                    if (id && id !== lastsel) {
                      jQuery('#my_excel_grid').restoreRow(lastsel);
                      jQuery('#my_excel_grid').editRow(id, true);
                      lastsel = id;
                    }
                  },

             beforeSubmitCell: function(rowid, celname, value, iRow, iCol) { alert("beforeSubmitCell"); },
             afterSaveCell: function (rowid, celname, value, iRow, iCol) { alert("afterSaveCell"); },

        }); });
我遇到的问题是beforeSubmitCell和afterSaveCell没有被调用(我没有收到警报消息),因此我无法在Total列中写入新值。顺便说一句,editurl是虚拟的,它没有返回任何内容(我也尝试过设置'clientArray',但没有成功)

那么,如何计算客户端的总列数?

仅供参考:这个想法是使用保存网格,并动态填充列,如图所示,

jqGrid有三个可供使用的选项:,和。如果你使用,它意味着你使用。和事件仅在单元格编辑模式下使用

所以你需要做的是

  • 从jqGrid定义中删除未使用的
    beforeSubmitCell
    beforeSubmitCell
    事件
  • 在editRow调用中添加其他参数。您需要使用参数。而不是
    jQuery(“#my_excel_grid”).editRow(id,true)
    您可以使用
    jQuery(this).jqGrid('editRow',id,true,null,null,'clientArray',{},函数(rowid,issucess){alert(rowid);})

  • 谢谢,成功了!顺便说一句,在提交之前你已经重复了1@epzee:不客气!应删除的事件名称为
    afterSaveCell
    beforeSubmitCell
    (均来自单元格编辑)