不废话,问题描述 后台用的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');
		},
	});