Плагины форм jQuery EasyUI -Combogrid
jQuery EasyUI Плагины
Расширяет $.fn.combo.defaults и $.fn.datagrid.defaults. Переопределите значения по умолчанию через $.fn.combogrid.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'. Можно выполнить запрос к базе данных, а затем вернуть браузеру результат SQL в формате JSON.
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.
| Name | Type | Описание | Значение по умолчанию |
|---|---|---|---|
| loadMsg | string | Сообщение, отображаемое, когда datagrid загружает удаленные данные. | null |
| idField | string | Имя поля для id. | null |
| textField | string | Имя поля текста, отображаемого в текстовом поле. | null |
| mode | string | Определяет, как загружать данные datagrid при изменении текста. Установите 'remote', если combogrid загружается с сервера. Когда установлен режим 'remote', введённое пользователем значение будет отправлено на сервер как параметр HTTP-запроса с именем 'q' для получения новых данных. | 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 |
Events
Эти события наследуются от combo и datagrid.
Методы
Эти методы наследуются от combo. Ниже перечислены методы, добавленные или переопределённые для combogrid.
| Name | Parameters | Описание |
|---|---|---|
| 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 Другие расширения