传递数组参数
function onSearch() {
var orderNo = $("#search-orderNo").val();
var status = $("#search-status option:selected").val();
var loginName = $("#search-loginName").val();
var nickName = $("#search-nickName").val();
var createDate = $("#search-createDate").val();
var siteIds = []; //数组
var boxes = $("input[name='siteIds']:checked");
for(var i=0;i<boxes.length;i++){
siteIds[i] = boxes[i].value;
}
var params = {orderNo: orderNo, status: status, loginName: loginName, nickName: nickName,siteIds:siteIds,createDate:createDate,page:1,rows:20};
var serial_params = $.param(params,true); //关键点,传递数组要序列化
//由于没有找到datagrid传递数组的方法,所以先用post把数据请求过来,然后用datagrid本地加载数据
$.post("../order/getOrderQueryList.do",serial_params,function (data) {
$('#course-datagrid').datagrid('loadData', data); //本地加载
<!--以下这样加载post请求的data也是不行的,因为datagrid又会发起一次请求,把post请求的数据都覆盖了,虽然没写url,也不知道从哪里获得的url-->
<!-- $("#course-datagrid").datagrid({-->
<!-- sortName: 'ID',-->
<!-- sortOrder: 'desc',-->
<!-- pagination: true,-->
<!-- pageSize: 20,-->
<!-- singleSelect: true,-->
<!-- rownumbers: true,-->
<!-- onClickRow: function (rowIndex, rowData) {-->
<!-- $(this).datagrid('unselectRow', rowIndex);-->
<!-- },-->
<!-- data:data-->
<!--});-->
});
}
jquery easyui 重复请求的解决
原来某个easyui 的控件都有两种使用方式。
1. 通过控件属性设置
2. 通过javascript脚本控制
上面两次加载是因为在属性中设置了class=easyui-datagrid 又在脚本中指定加载,所以当发现datagrid重复发送请求时,去掉class=easyui-datagrid就可以了