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. 既存の <select> または <input> 要素から JavaScript を使用して作成します。
<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 プラグイン その他の拡張