jQuery EasyUI 表單插件– Combogrid 組合網格
擴展自$.fn.combo.defaults 和$.fn.datagrid.defaults。 通過$.fn.combogrid.defaults 重寫默認的defaults。
組合網格(combogrid)把可編輯的文本框和下拉數據網格面板結合起來,用戶可以從下拉數據網格面板中快速查找和選擇。 組合網格(combogrid)提供了選擇某個項目的鍵盤導航支持。
依賴
- combo
- datagrid
用法
創建組合網格(combogrid)
1、從標記創建組合網格(combogrid)。
<select id="cc" class="easyui-combogrid" name="dept" style="width:250px;" data-options=" 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>
2、使用javascript 從已有的<select> 或<input> 元素創建。
<input id="cc" name="dept" value="01">
$('#cc').combogrid({ 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} ]] });
自動完成功能
讓我們為組合網格(combogrid)提那家自動完成功能。 下拉數據網格將根據用戶輸入顯示可能的結果。
$('#cc').combogrid({ 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' 參數必須首先被檢索。 用戶可以查詢數據庫,然後返回一個JSON 格式的sql 結果到瀏覽器。
get_data.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),下面是為組合網格(combogrid)添加的屬性。
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
loadMsg | string | 当数据网格(datagrid)加载远程数据时显示的消息。 | null |
idField | string | id 的字段名。 | null |
textField | string | 显示在文本框中的 text 字段名。 | null |
mode | string | 定义当文本改变时如何加载数据网格(datagrid)数据。如果组合网格(combogrid)从服务器加载就设置为 'remote'。当设置为 'remote' 模式时,用户输入的值将会被作为名为 'q' 的 http 请求参数发送到服务器,以获取新的数据。 | local |
filter | function(q, row) | 定义当 'mode' 设置为 'local' 时如何选择本地数据。返回 true 则选择该行。 代码实例: $('#cc').combogrid({ filter: function(q, row){ var opts = $(this).combogrid('options'); return row[opts.textField].indexOf(q) == 0; } }); |
100 |
事件
該事件擴展自組合(combo)和數據網格(datagrid)。
方法
該方法擴展自組合(combo),下面是為組合網格(combogrid)添加或重寫的方法。
名称 | 参数 | 描述 |
---|---|---|
options | none | 返回选项(options)对象。 |
grid | none | 返回数据网格(datagrid)对象。下面的实例显示如何取得选中的行:
var g = $('#cc').combogrid('grid'); // get datagrid object var r = g.datagrid('getSelected'); // get the selected row alert(r.name); |
setValues | values | 设置组件值的数组。 代码实例: $('#cc').combogrid('setValues', ['001','007']); |
setValue | value | 设置组件的值。 代码实例: $('#cc').combogrid('setValue', '002'); |
clear | none | 清除组件的值。 |
jQuery EasyUI插件