问题就出现了: 查询的时候, 对应后台变量名的是个js的变量;
比如:
addibleAuthorityDatagrid.datagrid('load', {
name : value,
"authorities.authorityIds" : authorityIds,
"authorities.tag" : "not_in"
});
Name的值为”authorities.authorityName”
Value的值为输入的值;
可是这样写的话, 并不会像其他两个参数一样赋到authorities这个对象的对应属性中;
他会把赋到action的name属性中!
这是post数据; 显然我们想传递的是”authorities.authorityName”;而他传递的却是”name”
所以这样写不行
下面是正确的写法;
思路: 就是把datagrid的qureyParams这个Object获得到;var queryParams = addibleAuthorityDatagrid.datagrid('options').queryParams;
然后里面加属性queryParams[name]=value;
再赋回去: addibleAuthorityDatagrid.datagrid('options').queryParams = queryParams;
最后调用load方法:addibleAuthorityDatagrid.datagrid('load');
最后的代码是这样的:
function addibleAuthoritySearch(value,name) {
var queryParams = addibleAuthorityDatagrid.datagrid('options').queryParams;
console.info(queryParams['authorities.tag']);
console.info(queryParams);
queryParams[name]=value;
console.info(queryParams);
addibleAuthorityDatagrid.datagrid('options').queryParams = queryParams;
addibleAuthorityDatagrid.datagrid('load');
addibleAuthorityDatagrid.datagrid('load', {
name : value,
"authorities.authorityIds" : authorityIds,
"authorities.tag" : "not_in"
});
}
Auth: 张振斌/杭州-沙子 time: 12-12-21