如何与BTN点击
问题描述:
喜亚姆使用免费的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();
});
答
可以使用例如aftersavefunc
回调在线编辑和行删除的afterComplete
添加,编辑和删除行的统计信息。您可以将统计信息保存在jqGrid的自定义选项中。
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.add
和stat.edit
将不会被调整。持有stat.add
,stat.edit
和stat.del
中的rowid数组将允许修复更精确的统计信息。
首先我修复了在你的问题中使用的标签。请阅读这里的标签[mvcjqgrid](https://*.com/tags/mvcjqgrid/info)和[free-jqgrid](https://*.com/tags/free-jqgrid/info)的描述。目前尚不清楚您计划使用哪种编辑模式。根据选择的编辑模式,可以使用相应的回调来增加插入,删除和编辑行的计数器。我根据你的代码创建了演示https://jsfiddle.net/dnfk8hmr/20/。您可以通过包含您需要的编辑来扩展它。 – Oleg
谢谢更新此演示 – saeed3164
欢迎您!您打算使用哪种编辑模式? – Oleg