jQuery EasyUI 表單插件 - Combogrid 組合網格
jQuery EasyUI 插件
擴展自 $.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 插件
