easyUI ComboBox

本文介绍了EasyUI框架中Combobox组件的使用方法,包括基本配置、数据绑定、事件监听及自定义操作等内容。通过实例展示了如何从<select>元素创建Combobox、设置依赖Combobox、加载本地或远程数据等。

combobox显示的是一个可以编辑的文本框和一个下拉列表.允许用户从里面选择一个或者是多个值,用户可以直接输入值到列表顶部,或者可以从列表选择一个或多个现有值.

 

相关依赖
  • combo
使用示例
从<select>元素和一个预定义结构创建combobox
 

<select id="cc" class="easyui-combobox" name="dept" style="width:200px;">    

<option value="aa">aitem1</option>    

<option>bitem2</option>    

<option>bitem3</option>    

<option>ditem4</option>    

<option>eitem5</option>    

</select>    

 

从<input>标记创建combobox
方法1:

<input id="cc" class="easyui-combobox" name="dept"    

data-options="valueField:'id',textField:'text',url:'get_data.php'" />   

方法2:

<input id="cc" name="dept" value="aa">    

$('#cc').combobox({    

    url:'combobox_data.json',    

    valueField:'id',    

    textField:'text'    

});  

方法3:

<input id="cc" class="easyui-combobox" name="dept"    

data-options="valueField:'id',textField:'text'" />

$("#cc").combobox("loadData",$.parseJSON(data))  ;

 

创建两个依赖的combobox

<input id="cc1" class="easyui-combobox" data-options="    

        valueField: 'id',    

        textField: 'text',    

        url: 'get_data1.php',    

        onSelect: function(rec){    

            var url = 'get_data2.php?id='+rec.id;    

            $('#cc2').combobox('reload', url);    

        }" />    

<input id="cc2" class="easyui-combobox" data-options="valueField:'id',textField:'text'" />    

json数据转换示例

[{    

"id":1,    

"text":"text1"    

},{    

"id":2,    

"text":"text2"    

},{    

"id":3,    

"text":"text3",    

"selected":true    

},{    

"id":4,    

"text":"text4"    

},{    

"id":5,    

"text":"text5"    

}]    

属性

这些属性继承至 combo,下面是combobox的一些新增属性.

NameTypeDescriptionDefault
valueFieldstring绑定到这个combobox的基础数据值名.value
textFieldstring绑定到这个combobox的数据字段名.text
modestring当文本改变时定义如何加载显示列表数据.如果设置为'remote' combobox从远程服务器加载数据.当设置为'remote'模式时, 用户输入的信息将发送作为http请求参数,参数名为'q'到服务器检索新的数据.local
urlstring一个从远程服务器加载列表数据的URL.null
methodstring检索数据的http请求方法 .post
dataarray需要加载到列表的数据.

示例代码:

<input class="easyui-combobox" data-options="
		valueField: 'label',
		textField: 'value',
		data: [{
			label: 'java',
			value: 'Java'
		},{
			label: 'perl',
			value: 'Perl'
		},{
			label: 'ruby',
			value: 'Ruby'
		}]" />
null
filterfunction定义如何过滤本地数据,当'mode'设置为'local'的时候. 这个函数提供两个参数:
q: 用户输入的文本.
row: 列表的行数据.
返回true 允许行显示 .

示例代码:

$('#cc').combobox({
	filter: function(q, row){
		var opts = $(this).combobox('options');
		return row[opts.textField].indexOf(q) == 0;
	}
});
 
formatterfunction定义如何呈现行. 这个函数提供一个参数 :row.

示例代码:

$('#cc').combobox({
	formatter: function(row){
		var opts = $(this).combobox('options');
		return row[opts.textField];
	}
});
 
loaderfunction(param,success,error)定义如何从远程服务器加载数据. 返回false终止这个动作.这个函数提供一下参数:
param:传递给远程服务器的参数对象.
success(data): 当检索数据成功这个回调函数将被调用.
error():当检索数据失败(异常,而不是返回空数据的时候)这个函数将被调用.
json loader

事件

事件继承至 combo, 以下是combobox的新增事件.

NameParametersDescription
onBeforeLoadparam一个请求在加载数据之前触发,返回false取消这个加载动作.

示例代码:

// 在从远程服务器加载数据之前改变请求参数
$('#cc').combobox({
	onBeforeLoad: function(param){
		param.id = 2;
		param.language = 'js';
	}
});
onLoadSuccessnone当远程数据加载成功之后触发.
onLoadErrornone远程数据加载出错触发.
onSelectrecord当用户选择一个列表项的时候触发.
onUnselectrecord当用户取消选择一个列表项的时候触发.

方法

  方法继承至 combo,以下是combobox的新增的或者是重写的方法.

NameParameterDescription
optionsnone返回 options 对象.
getDatanone返回加载数据.
loadDatadata返回本地列表数据.
reloadurl请求远程服务器列表数据.传入'url'参数重写原始的URL值.

示例代码:

$('#cc').combobox('reload');  //使用原始URL重新加载列表数据
$('#cc').combobox('reload','get_data.php');  //使用新的URL重新加载列表数据
setValuesvalues设置 combobox 值数组.

示例代码:

$('#cc').combobox('setValues', ['001','002']);
setValuevalue设置 combobox 值.

示例代码:

$('#cc').combobox('setValues', '001');
clearnone清除 combobox 值.
selectvalue选择特定的项.
unselectvalue取消特定的选择项

 

转载于:https://www.cnblogs.com/cmblogs/p/3886907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值