combobox使用dwr请求远程数据之传递参数

combobox关于dwr请求传递参数目前好像没有直接提供属性设置,像datagrid的param属性.
通过查看源码发现.其实在构建cmobobox的时候,是提供了param参数设置的
$.fn.combobox = function(options, param){...}
于是在使用的时候声明如下
$('#cc').combobox({  
url:UserAction.getUsers,
valueField:'id',
textField:'text'
},{id:1});
但是结果发现属性id并没有传递到后台.
再跟进代码发现,在构建combobox的时候调用了一个request方法来请求远程数据.
request(this);
问题好像已经发现了,我们构建时候设置的参数并没有传递到request中,也就在并没有使用我们设置的参数.为什么这么做甚是不解.

问题找到就好修改了,有两种修改方式
1.直接修改源码,将构造函数中request(this)修改成request(this,null,param);
2.重写dwrloader
第一种方式并不推荐,这里修改了以后就要增加对这里的维护成本
第二种推荐使用。
直接上代码
--构建combobox
$('#cc').combobox({  
url:UserAction.getUsers,
valueField:'id',
textField:'text',
loader:myLoader({id:"101"}),
onLoadSuccess:function(){
$('#cc').combobox('select',-1);
}
});

--重写dwrloader
function myLoader(parameter){
return function(param, success, error){
var opts = $(this)['combobox']('options');
if (!opts.url) return false;
var dwrFunc = eval(opts.url);
dwrFunc(parameter, {
callback: function(data){
data.unshift({text:'全部',id:-1});
success(data);
},
exceptionHandler: function(){
error.apply(this, arguments);
}
});
};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值