2017-10-17 120 views
0

喜亚姆使用免费的jqGrid得到所有行更改CRUD中的jqGrid 4.15.1如何与BTN点击

我想BTN点击获取〔实施例都在改变行 3行编辑 2行插入 1行删除 IAM使用此代码,我想tish导致插入该行

我插入新的这棵树行

{ id: "gridad", Name: "Name 4", PackageCode: "83123a", other: "x",> }, 
    { id: "gridadd", Name: "Name 5", PackageCode: "834", other: "x", > }, 
    { id: "gridadd", Name: "Name 6", PackageCode: "83566a", other: "z", } 

编辑此行

> { id: "10", Name: "Name 122", PackageCode: "83566a1000", other: "z", 
> } 

中删除此行

> { id: "20", Name: "Name 3", PackageCode: "83432a", other: "y"}, 

这是我的代码

$(function() { 
     "use strict"; 
     var data = [ 
       { id: "10", Name: "Name 1", PackageCode: "83123a", other: "x", subobject: { x: "a", y: "b", z: [1, 2, 3]} }, 
       { id: "20", Name: "Name 3", PackageCode: "83432a", other: "y", subobject: { x: "c", y: "d", z: [4, 5, 6]} }, 
       { id: "30", Name: "Name 2", PackageCode: "83566a", other: "z", subobject: { x: "e", y: "f", z: [7, 8, 9]} } 

      ], 

      $grid = $("#packages"); 

     $grid.jqGrid({ 
      data: data, 
      datatype: "local", 
      colModel: [ 
       { name: "PackageCode", width: 110 }, 
       { name: "Name", width: 300 } 
      ], 
      pager: "#packagePager", 
      rowNum: 2, 
      rowList: [1, 2, 10], 
      viewrecords: true, 
      rownumbers: true, 
      caption: "Packages", 
      height: "auto", 
      sortname: "Name", 
      autoencode: true, 
      gridview: true, 
      ignoreCase: true, 
        }); 
     $grid.jqGrid("navGrid", "#packagePager", 
      { add: false, edit: false, del: false }, {}, {}, {}, 
      { multipleSearch: true, multipleGroup: true }); 
     $grid.jqGrid("filterToolbar", { defaultSearch: "cn", stringResult: true }); 
    }); 

这个按钮来获取所有变化

$("#customerCodesTableSave").click(function() { 
     var gridData = myGrid.jqGrid('getRowData'); 

     var postData = JSON.stringify(rowdata); 
     alert(gridData.length); 
     alert(postData); 
     for (var i = 0; i < gridData.length; i++) { 
      alert(i + "_" + (gridData[i]['id'])); 

      if (gridData[i].id == $(myGrid)[0].id + "_0") 
      { 
       alert(gridData[i]['id']); 
      } 
      //myGrid.jqGrid('saveRow', gridData[i]['id']); 

     } 

    saveGrid(); 

    }); 
+0

首先我修复了在你的问题中使用的标签。请阅读这里的标签[mvcjqgrid](https://stackoverflow.com/tags/mvcjqgrid/info)和[free-jqgrid](https://stackoverflow.com/tags/free-jqgrid/info)的描述。目前尚不清楚您计划使用哪种编辑模式。根据选择的编辑模式,可以使用相应的回调来增加插入,删除和编辑行的计数器。我根据你的代码创建了演示https://jsfiddle.net/dnfk8hmr/20/。您可以通过包含您需要的编辑来扩展它。 – Oleg

+0

谢谢更新此演示 – saeed3164

+0

欢迎您!您打算使用哪种编辑模式? – Oleg

回答

1

可以使用例如aftersavefunc回调在线编辑和行删除的afterComplete添加,编辑和删除行的统计信息。您可以将统计信息保存在jqGrid的自定义选项中。

演示update demo

stat: { // custom option to hold the editing statistics 
    edit: 0, 
    add: 0, 
    del: 0 
}, 
formDeleting: { 
    afterComplete: function (jqXHR, postdata) { 
     var p = $(this).jqGrid("getGridParam"); 
     p.stat.del++; 
    } 
}, 
inlineEditing: { 
    aftersavefunc: function (rowid, jqXhr, postData, options) { 
     // postData.oper will be either "add" or "edit" 
     var p = $(this).jqGrid("getGridParam"); 
     p.stat[postData.oper]++; 
    } 
} 

像你访问其他的jqGrid参数你可以得到的统计数据以同样的方式:

$("#getStat").click(function() { 
    var p = $grid.jqGrid("getGridParam"); 
    alert("added rows: " + p.stat.add + "\n" + 
      "edited rows: " + p.stat.edit + "\n" + 
      "deleted rows: " + p.stat.del); 
}); 

事业上面的代码非常简单。您可以使用rowid编辑/添加和删除行来保存数组,而不仅仅是数字。它可以让你持有更精确的统计数据。我的意思是,如果用户将多次编辑相同的行,上面最简单的代码将增加stat.edit。如果添加/编辑的行将被删除,则stat.addstat.edit将不会被调整。持有stat.add,stat.editstat.del中的rowid数组将允许修复更精确的统计信息。

+0

谢谢,但我需要行arrye不计算crud.iam需要行添加:1添加:pacgecode:10,名称:oleg – saeed3164

+0

@ saeed3164:对不起,但我不明白你有什么问题。您可以在'aftersavefunc'中获得有关已插入/已编辑行的完整信息,并可以在'afterComplete'中删除行(请参阅回调参数)。您只需根据您的要求更改'aftersavefunc'和'afterComplete'的实现。 – Oleg

+0

谢谢我的朋友:我有价值行,无论是编辑或删除或添加 – saeed3164

相关问题