Skip to content

ComboGrid(数据表格下拉框)

扩展自$.fn.iCombo.defaults$.fn.iDatagrid.defaults。使用$.fn.iCombogrid.defaults重写默认值对象。

数据表格下拉框结合了可编辑文本框控件和下拉数据表格面板控件,该控件允许用户快速查找和选择,并且该控件提供了键盘导航支持,对行进行筛选。

依赖关系

使用案例

创建数据表格下拉框

  1. 使用标签创建一个数据表格下拉框。
html
<select id="cc" name="dept" data-toggle="topjui-combogrid" data-options="width:250,
           panelWidth:450,
           value:'006',
           idField:'code',
           textField:'name',
           url:'datagrid_data.json',
           columns:[[
               {field:'code',title:'Code',width:60},
               {field:'name',title:'Name',width:100},
               {field:'addr',title:'Address',width:120},
               {field:'col4',title:'Col41',width:100}
           ]]"></select>
  1. 使用Javascript通过已经定义的<select><input>标签来创建数据表格下拉框。
html
<input id="cc" name="dept" value="01">
javascript
$('#cc').iCombogrid({
    panelWidth:450,
    value:'006',
    idField:'code',
    textField:'name',
    url:'datagrid_data.json',
    columns:[[
        {field:'code',title:'Code',width:60},
        {field:'name',title:'Name',width:100},
        {field:'addr',title:'Address',width:120},
        {field:'col4',title:'Col41',width:100}
    ]]
});

自动完成功能

让我们为数据表格下拉框控件添加高级的自动完成功能。下拉数据表格会根据用户输入显示适合的结果。

javascript
$('#cc').iCombogrid({
    delay: 500,
    mode: 'remote',
    url: 'get_data.php',
    idField: 'id',
    textField: 'name',
    columns: [[
        {field:'code',title:'Code',width:120,sortable:true},
        {field:'name',title:'Name',width:400,sortable:true}
    ]]
});

在服务器端,参数'q'必须先检索。用户可以查询数据库,然后返回一个SQL查询结果的JSON格式给浏览器。

get_data.php:

php
$q = isset($_POST['q']) ? $_POST['q'] : '';  // the request parameter
// query database and return JSON result data
$rs = mysql_query("select * from item where name like '$q%'");
echo json_encode(...);

属性

数据表格下拉框的属性扩展自combo(自定义下拉框)和datagrid(数据表格),树形下拉框新增属性如下:

属性名属性值类型描述默认值
loadMsgstring在数据表格加载远程数据的时候显示消息。null
idFieldstringID字段名称。null
textFieldstring要显示在文本框中的文本字段。null
modestring定义在文本改变的时候如何读取数据网格数据。设置为'remote',数据表格将从远程服务器加载数据。当设置为'remote'模式的时候,用户输入将会发送到名为'q'的http请求参数,向服务器检索新的数据。local
filterfunction(q, row)定义在'mode'设置为'local'的时候如何选择本地数据,返回true时则选择该行。见下方代码示例。

属性代码示例

filter属性示例:

javascript
$('#cc').iCombogrid({
    filter: function(q, row){
        var opts = $(this).iCombogrid('options');
        return row[opts.textField].indexOf(q) == 0;
    }
});

事件

数据表格下拉框事件完全扩展自combo(自定义下拉框)和datagrid(数据表格)。

方法

数据表格下拉框的方法扩展自combo(自定义下拉框),数据表格下拉框新增或重写的方法如下:

方法名方法参数描述
optionsnone返回属性对象。
gridnone返回数据表格对象。见下方代码示例。
setValuesvalues设置组件值数组。见下方代码示例。
setValuevalue设置组件值。见下方代码示例。
clearnone清除组件的值。

方法代码示例

grid方法示例:

下面的例子显示了如何获取选择的行:

javascript
var g = $('#cc').iCombogrid('grid'); // 获取数据表格对象
var r = g.iDatagrid('getSelected'); // 获取选择的行
alert(r.name);

setValues方法示例:

javascript
$('#cc').iCombogrid('setValues', ['001','007']);
$('#cc').iCombogrid('setValues', ['001','007',{id:'008',name:'name008'}]);

setValue方法示例:

javascript
$('#cc').iCombogrid('setValue', '002');
$('#cc').iCombogrid('setValue', {id:'003',name:'name003'});

基于最新稳定版jQuery EasyUI构建的前端框架