不废话,问题描述
后台用的jquery easyui 组件开发,combobox组件需要和后台数据进行交互,在后台数据更新时,是要实时更新下拉框列表值。由于缓存的问题,下拉值在后台数据出现变化时,并没有更新。
查了网上的,几乎都很复杂或者不对。
我的解决方案如下
combobox 组件继承了panel组件,在panel组件里面有个事件 onShowPanel,在combobox组件里面有个reload方法。所以只要在组件下拉展示面板时,重新请求一下数据就好。附上部分代码。
//搜索产品下拉
$('#ser_pro').combobox({
editable : false,
valueField : 'id',
textField : 'name',
panelHeight:'auto',
url : 'product.php?a=nav',
multiple : false,
onShowPanel : function () {
$('#ser_pro').combobox('clear');
$('#ser_pro').combobox('reload','product.php?a=nav');
},
});