2017-10-17 207 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