用jquery easyui datagrid
$(function(){
product = $('#product').datagrid({
nowrap:false,
striped:true,
url:'listProduct.action',
sortName: 'pn',
sortOrder: 'desc',
idField:'pn',frozenColumns:[[ {field:'ck',checkbox:true}, ]], columns:[[ {field:'pn',title:'P/N',width:100,align:'center'}, {field:'description',title:'Description',width:120,align:'center'}, {field:'type',title:'Type',width:100,align:'center'}, {field:'brand',title:'Brand',width:60,align:'center'}, {field:'pack',title:'Package',width:60,align:'center'}, {field:'unit',title:'Unit',width:60,align:'center'}, {field:'unitCost',title:'Unit Cost',width:60,align:'right'}, {field:'sell',title:'Sell',width:60,align:'center'}, {field:'quantity',title:'Quantity',width:60,align:'center'}, {field:'dateCode',title:'Date Code',width:60,align:'center'}, ]], pagination:true, toolbar:[{ text:'Add', iconCls:'icon-add', handler:function(){ alert('add') } },'-',{ text:'Edit', iconCls:'icon-edit', handler:function(){ alert('edit') } },'-',{ text:'Delete', iconCls:'icon-remove', handler:function(){ delRows(product); } }] }); });
function delRows(table) {
var arr = getSelectedRows(table);
if (arr.length > 0) {
$.messager.confirm('Prompt', 'Are you sure to delete the selected record(s)', function (data) {
if (data) {
$.ajax({
url: 'delProduct',
type: 'get',
dataType: 'json',
data: {"id":"[{'id':3},{'id':5}]"},
// timeout: 1000,
error: function () {
$.messager.alert('Error', 'Delete Failure!', 'error');
},
success: function (data) {
if (data.success) {
grid.datagrid('reload');
grid.datagrid('clearSelections');
} else {
$.messager.alert('Error', data.msg, 'error');
}
}
});
}
});
} else {
$.messager.show({
title: 'Wraning',
msg: 'Please select the record you want to delete!'
});
}function getSelectedRows(table) {
var ids = [];
var rows = table.datagrid('getSelections');
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].id);
}
alert(ids.join('\n'));
return ids;
}
[code="java"][/code][code="java"]
function getSelectedRows(table) {
var ids = [];
var rows = table.datagrid('getSelections');
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].id); s.join('\n'));
return ids;
}
[/code]
我对easyui还是比较熟悉的,首先问个问题,你的删除不就是要最终从数据库中删除吗?
你用过sql语句中的in关键字吗?
delete from TableA where id in (1,3,4,5,6);
你知道js的数组中有个join方法,那么你现在能联想到什么?
对了,将你的id数组转换成 "1,2,3,4,5"的形式传到后台
[code="java"]
function getSelectedRows(table) {
var ids = [];
var rows = table.datagrid('getSelections');
for (var i = 0; i < rows.length; i++) {
ids.push(rows[i].id);
return ids.join(",");
}
[/code]
然后通过:
[code="java"]
$.ajax({
url:'XXX.action?ids='+getSelectedRows(table),
method:'POST',
dataType:'json',
success:function(msg){
},
error:function(msg){
}
...
});
[/code]
你已经在ajax里面设置返回值为JSON了,为什么还要使用eval?
看到你的 getSelectedRows(table) 已经拿到了 选中行的 ID 。
[code="javascript"]
$.ajax({
url: 'delProduct',
type: 'get',
dataType: 'json',
data: {"id":"[{'id':3},{'id':5}]"},
[/code]
中将 data 一行换成: data: [{name: 'ids', value: arr.join('\n')}],
在后台 String[] ids = request.getParameter("ids").split("\n");
这样你就得到选中的 ID 了。
[quote]后台用的是struts,不是servlet [/quote]
[code="java"]
private String[] ids;
public void setIds(String ids) {
this.ids = ids.split("\n");
}
[/code]