使用multiselect在JQGrid delete中传递额外参数
我想在JQGrid中具有删除多行的功能。我的代码如下所示:使用multiselect在JQGrid delete中传递额外参数,jqgrid,multi-select,Jqgrid,Multi Select,我想在JQGrid中具有删除多行的功能。我的代码如下所示: {height:180,mtype:"POST",closeAfterDel:true, url:'gridedit.jsp',reloadAfterSubmit:true, onclickSubmit: function (options, rowid) { var rowData = jQuery(this).jqGrid('getRowData', rowid); var params ={am
{height:180,mtype:"POST",closeAfterDel:true, url:'gridedit.jsp',reloadAfterSubmit:true,
onclickSubmit: function (options, rowid) {
var rowData = jQuery(this).jqGrid('getRowData', rowid);
var params ={amount:rowData.amount,account:rowData.account.replace(/-/g,"")};
return params;
},
afterSubmit: function () {
$(this).jqGrid('setGridParam', {datatype:'json'});
return [true,''];
}
}
我想根据列rowData.account的值进行删除
问题是,当我选择多行时,我可以看到网格将所有rowid返回到编辑URL,但只传递第一行的rowData.account值
有没有办法让网格传回所有值?我无法根据后端的行id进行删除,因为我的数据库没有任何行id
请帮忙
这是我的网格代码:
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
datatype: 'json',
url:'gridfeeder.jsp?ctlSelectedDate=<%= request.getParameter("ctlSelectedDate")%>',
colNames: ['Date', 'Account ', 'Amount', 'Code'],
colModel: [
//First Column, DATE
{name: 'adate', index: 'adate', width: 300, sorttype: 'date', align: 'center',datefmt: 'Y-m-d',
editable:true, formatter: myLinkFormatter, editoptions:{
dataInit:function(elem)
{
jQuery(elem).datepicker({
showButtonPanel: true,
changeMonth: true,
changeYear: true
});
}}, search:true, stype:'text',searchoptions:{
dataInit:function(elem)
{
jQuery(elem).datepicker({
showButtonPanel: true,
changeMonth: true,
changeYear: true
});
}
}
},
//Second Column, ACCOUNT
{ name: 'account', index: 'account', width: 300, align: 'center', sorttype: 'string', editable:true,
search:true, stype:'text',editrules:{custom:true, custom_func:
//Validation for this column for editing
function(value, colname) {
if (value.length<9 || value.length>11)
return [false,"Invalid Input"];
else
return [true,""];
}
},
searchrules:{custom:true, custom_func:
jQuery(document).ready(function(){
jQuery(“#list”).jqGrid({
数据类型:“json”,
url:'gridfeeder.jsp?ctlSelectedDate=',
colNames:[“日期”、“帐户”、“金额”、“代码”],
colModel:[
//第一栏,日期
{name:'adate',index:'adate',width:300,sorttype:'date',align:'center',datefmt:'Y-m-d',
可编辑:true,格式化程序:MyLink格式化程序,编辑选项:{
dataInit:函数(elem)
{
jQuery(elem).datepicker({
showButtonPanel:是的,
变化月:对,
变化年:对
});
}},搜索:true,stype:'text',搜索选项:{
dataInit:函数(elem)
{
jQuery(elem).datepicker({
showButtonPanel:是的,
变化月:对,
变化年:对
});
}
}
},
//第二栏,账户
{name:'account',index:'account',width:300,align:'center',sorttype:'string',可编辑:true,
搜索:true,stype:'text',editrules:{custom:true,custom_func:
//验证此列以进行编辑
函数(值,colname){
如果(长度值11)
返回[false,“无效输入”];
其他的
返回[真,“];
}
},
searchrules:{custom:true,custom_func:
//验证此列以进行搜索
function(val, colname) {
if (val.length<9 || val.length>11)
return [false,"Invalid Input"];
else
return [true,""];
}
}
},
//Third Column, AMOUNT
{ name: 'amount', index: 'amount', width: 300, align: 'center', sorttype: 'float', editable:true,
editrules:{number:true}, search:true, stype:'text'
},
//Fourth Column, CODE
{ name: 'code', index: 'code', width: 300, align: 'center', sorttype: 'float', editable:true,
search:true, stype:'text'
}
],
pager: "#pager", //Identifying the navigation bar
rowNum: 500, // how many rows to display on page 1
rowList: [500,1000, 2000, 3000,4000], //values for the dropdown which specifies how many rows to show
sortorder: "desc", //the order of sorting by default
viewrecords: true, // displays total number of rows
gridview: true,
autoencode: true,
height:400, //height of the grid
ignoreCase:true,// case insensitive search
multiselect:true, // checkboxes before each row
multiboxonly: true,
loadonce:true, //for client side sorting, searching and pagination
caption:"This is me" // caption for the grid header
函数(val,colname){
如果(val.length11)
返回[false,“无效输入”];
其他的
返回[真,“];
}
}
},
//第三栏,金额
{name:'amount',index:'amount',width:300,align:'center',sorttype:'float',可编辑:true,
editrules:{number:true},搜索:true,stype:'text'
},
//第四栏,代码
{名称:'code',索引:'code',宽度:300,对齐:'center',排序类型:'float',可编辑:true,
搜索:true,stype:'text'
}
],
寻呼机:“#寻呼机”//识别导航栏
rowNum:500,//第1页上要显示多少行
行列表:[5001000200030004000],//用于指定要显示多少行的下拉列表的值
sortorder:“desc”,//默认排序顺序
viewrecords:true,//显示总行数
gridview:没错,
自动编码:正确,
高度:400,//网格的高度
ignoreCase:true,//不区分大小写的搜索
multiselect:true,//每行前面的复选框
multiboxonly:正确,
loadonce:true,//用于客户端排序、搜索和分页
标题:“这是表格标题的“我”//caption
以下是导航栅格部分:
}).navGrid('#pager',{edit:true,add:true,del:true,search:true,refresh:true},
// Options for EDIT
{height:280,mtype: "POST",closeAfterEdit: true,reloadAfterSubmit:true, url:'gridedit.jsp',
recreateForm: true,
//set some properties beofre the dialog box is seen by the user
beforeShowForm: function(form) {
/*$('#adate',form).attr('readonly','readonly');
$('#account',form).attr('readonly','readonly');*/
$('#adate',form).hide();
$('#account',form).hide();
},
// what happens when the user clicks submit. passing extra parameters
onclickSubmit: function (options, postdata) {
var rowid = postdata[this.id + "_id"]; // postdata.list_id
var dataF = jQuery('#list').jqGrid ('getCell', rowid, 'account');
return {account:dataF.replace(/-/g,"")};
},
// changing the datatype
afterSubmit: function () {
$(this).jqGrid("setGridParam", {datatype: 'json'});
return [true,''];
}
},
//ADD options
{height:280,mtype:"POST", closeAfterAdd:true, reloadAfterSubmit:true, url:'gridedit.jsp',
beforeShowForm: function(form) {
/*var cm = jQuery("#list").jqGrid('getColProp','adate');
alert(cm);
cm.editable = false;
$('#adate',form).attr('readonly','readonly');
$('#account',form).attr('readonly','readonly');*/
$('#adate',form).show();
$('#account',form).show();
},
//Change the datatype
afterSubmit: function () {
$(this).jqGrid("setGridParam", {datatype: 'json'});
return [true, ""];
}
},
{height:180,mtype:"POST",closeAfterDel:true, url:'gridedit.jsp',reloadAfterSubmit:true,
/* onclickSubmit: function (options, rowid) {
var rowData = jQuery(this).jqGrid('getRowData', rowid);
var params ={account:rowData.account.replace(/-/g,"")};
return params;
},*/
delData: {
account: function() {
var sel_id = $("#list").jqGrid('getGridParam', 'selrow');
var value = $("#list").jqGrid('getCell', sel_id, 'account');
return value.replace(/-/g,"");
}
},
afterSubmit: function () {
$(this).jqGrid('setGridParam', {datatype:'json'});
return [true,''];
}
}
);
function myLinkFormatter(cellvalue, options, rowObject) {
return "<a href='account094act.jsp?GETDATE=" + cellvalue + "&GETACC=" + rowObject[1] + "'>" + cellvalue + "</a>";
}
jQuery("#refresh_list").click(function(){
jQuery("#list").setGridParam({datatype: 'json'});
jQuery("#list").trigger("reloadGrid");
});
});
navGrid(“#pager”,{edit:true,add:true,del:true,search:true,refresh:true},
//编辑选项
{height:280,mtype:“POST”,closeAfterEdit:true,reloadAfterSubmit:true,url:'gridedit.jsp',
再现形式:正确,
//在用户看到对话框之前设置一些属性
beforeShowForm:函数(形式){
/*$('#adate',form).attr('readonly','readonly');
$('#account',form.attr('readonly','readonly')*/
$('#adate',form).hide();
$('#account',form.hide();
},
//当用户单击submit时会发生什么?传递额外的参数
onclickSubmit:函数(选项、postdata){
var rowid=postdata[this.id+“_id”];//postdata.list_id
var dataF=jQuery('#list').jqGrid('getCell',rowid',account');
返回{account:dataF.replace(/-/g,“”)};
},
//更改数据类型
后提交:函数(){
$(this.jqGrid(“setGridParam”,{datatype:'json'});
返回[true',];
}
},
//添加选项
{height:280,mtype:“POST”,closeAfterAdd:true,reloadAfterSubmit:true,url:'gridedit.jsp',
beforeShowForm:函数(形式){
/*var cm=jQuery(“#list”).jqGrid('getColProp','adate');
警报(cm);
cm.editable=false;
$('#adate',form).attr('readonly','readonly');
$('#account',form.attr('readonly','readonly')*/
$('#adate',form).show();
$('#account',form.show();
},
//更改数据类型
后提交:函数(){
$(this.jqGrid(“setGridParam”,{datatype:'json'});
返回[真,“];
}
},
{height:180,mtype:“POST”,closeAfterDel:true,url:'gridedit.jsp',reloadAfterSubmit:true,
/*onclickSubmit:函数(选项,rowid){
var rowData=jQuery(this).jqGrid('getRowData',rowid);
var params={account:rowData.account.replace(/-/g,“”)};
返回参数;
},*/
delData:{
帐户:函数(){
var sel_id=$(“#list”).jqGrid('getGridParam','selrow');
var值=$(“#列表”).jqGrid('getCell',sel#u id',account');
返回值。替换(/-/g,“”);
}
},
后提交:函数(){
$(this.jqGrid('setGridParam',{datatype:'json'});
返回[true',];
}
}
);
函数myLinkFormatter(单元格值、选项、行对象){
返回“”;
}
jQuery(“刷新列表”)。单击(函数(){
jQuery(“#list”).setGridParam({datatype:'json'});
jQuery(“#list”).trigger(“reloadGrid”);
});
});
您可以使用最独特的值作为rowid,这些值最适合您的情况。也许你应该考虑使用<代码>帐号列作为ROWID的值?是吗