В этом кратком совете я приведу несколько простых шагов по настройке редактируемой сетки (или таблицы) с использованием Bootstrap и Shield UI Lite .
Shield UI Lite — это библиотека jQuery с открытым исходным кодом, которая включает, помимо прочего, сетку jQuery. Сетка поддерживает редактирование «из коробки», а также сортировку, группировку и различные редакторы столбцов.
О Shield UI Lite
Shield UI — компания по разработке веб-компонентов, которая специализируется на разработке, разработке и маркетинге виджетов UI для разработки на чистом JavaScript, а также для разработки на ASP.NET, ASP.NET MVC и Java Wicket. Компания предлагает компоненты визуализации данных , а также целый ряд стандартных компонентов веб-разработки, таких как сетки, штрих-коды — одномерные и двухмерные, расширенные компоненты ввода — такие как числовые и маскированные текстовые поля и многое другое .
Shield UI Lite Suite является одной из новейших библиотек с открытым исходным кодом на рынке, и в этом особенность его заключается в том, что он содержит множество компонентов, каждый из которых является многофункциональным и зрелым. Это включает в себя jQuery Grid , который поддерживает все важные операции веб-сетки из коробки. Компонент поддерживает редактирование со встроенным или стандартным редактированием формы редактирования, а также редактирование с помощью внешней формы. Также поддерживается редактирование ячеек.
В дополнение к этому, Shield UI Grid имеет встроенный компонент источника данных, который облегчает привязку ко всем типам данных — от локальных структур JSON до удаленных веб-служб; встроенный источник данных также заботится обо всех операциях удаления, обновления и вставки.
Для приложений с большими объемами данных виджет JQuery пользовательского интерфейса Shield предлагает расширенную функцию виртуальной прокрутки, которая значительно повышает производительность даже при работе с миллионами реальных записей данных. Чтобы увидеть больше примеров компонента и его опций, вы можете обратиться к онлайн-демонстрациям или документации .
Использование кода
Для редактируемой сетки, которую мы будем создавать, я использую локальный источник данных, чтобы все было просто. Исходный код для библиотек можно найти на GitHub . Полный пример кода вместе со всеми используемыми примерами данных, а также дополнительные CSS доступны в демонстрационной версии CodePen .
Первым шагом в настройке макета является использование стандартного контейнера Bootstrap. В нашем случае это div
Поскольку любой стандартный компонент веб-сетки обычно содержит много данных, наш макет занимает всю ширину экрана.
Код для этого шага прост и выглядит следующим образом:
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="text-center">Bootstrap Editable jQuery Grid
<span class="fa fa-edit pull-right bigicon"></span></h4>
</div>
<div class="panel-body text-center">
<div id="grid"></div>
</div>
</div>
</div>
Это весь HTML-код, необходимый для настройки образца. Следующим шагом является добавление ссылок на все ресурсы, используемые в образце, такие как таблицы стилей, файлы JavaScript и данные.
Данные, используемые в примере, представляют собой стандартную коллекцию JSON, которая загружается отдельно для передачи в компонент сетки. Использование локального источника данных упрощает настройку. Кроме того, нам нужна таблица стилей для сетки и JavaScript для ее инициализации.
Включение этих ресурсов показано ниже:
CSS:
<link rel="stylesheet" href="shieldui-lite.min.css">
Сценарии:
<script src="shieldui-lite-all.min.js"></script>
<script src="shortGridData.js"></script>
Настройка сетки
Следующим шагом в этом процессе является настройка компонента сетки Shield UI Lite. После того, как мы включили необходимые ресурсы, мы можем инициализировать его с помощью некоторого JavaScript в обработчике document.ready.
В описании компонента есть две логические части. Первый — это обработка источника данных для данных, которые будут отображаться в сетке, а второй — настройка столбцов, которые будут фактически отображаться, а также любые дополнительные параметры, такие как сортировка, эффекты наведения и т. Д.
Сетка Shield UI Lite имеет встроенное свойство dataSource
Чтобы связать dataSource
data
Код для достижения этого показан ниже:
dataSource: {
data: gridData,
schema: {
fields: {
id: { path: "id", type: Number },
age: { path: "age", type: Number },
name: { path: "name", type: String },
company: { path: "company", type: String },
month: { path: "month", type: Date },
isActive: { path: "isActive", type: Boolean },
email: { path: "email", type: String },
transport: { path: "transport", type: String }
}
}
}
Включение редактирования
Следующим шагом в процессе настройки приложения является выбор того, какие свойства будут доступны в сетке, а также описание столбцов, которые будут отображаться.
Каждый столбец может иметь дополнительные свойства, такие как текст заголовка и ширина. Настройка свойства width
Код для всех свойств в элементе управления приведен ниже:
rowHover: false,
columns: [
{ field: "name", title: "Person Name", width: "120px" },
{ field: "age", title: "Age", width:"80px" },
{ field: "company", title: "Company Name" },
{ field: "month", title: "Date of Birth",
format: "{0:MM/dd/yyyy}", width:"120px" },
{ field: "isActive", title: "Active" },
{ field: "email", title: "Email Address", width: "250px" },
{ field: "transport", title: "Custom Editor", width: "120px", editor: myCustomEditor },
{
width: "104px",
title: "Delete Column",
buttons: [
{ cls: "deleteButton", commandName: "delete",
caption: "<img src='source/delete.png' />
<span>Delete</span>" }
]
}
],
editing: {
enabled: true,
event: "click",
type: "cell",
confirmation: {
"delete": {
enabled: true,
template: function (item) {
return "Delete row with ID = " + item.id
}
}
}
},
Настройка пользовательского редактора
Виджет поддерживает множество удобных редакторов из коробки. После того, как элемент управления переведен в режим редактирования, щелкнув любую из ячеек, редактор ячейки будет зависеть от типа значений в этой ячейке. Например, числовое значение будет иметь числовой ввод с кнопками увеличения и уменьшения. Столбец даты будет иметь ввод календаря для удобного выбора даты.
Существует также возможность предоставления пользовательского редактора для столбца. Например, вместо стандартного текстового поля у нас может быть выпадающий список со всеми значениями для этого столбца.
Это может быть достигнуто путем присоединения к событию getCustomEditorValue
Это продемонстрировано в следующем фрагменте кода для событий:
events: {
getCustomEditorValue: function (e) {
e.value = $("#dropdown").swidget().value();
$("#dropdown").swidget().destroy();
}
}
И пользовательский редактор:
function myCustomEditor(cell, item) {
$('<div id="dropdown"/>')
.appendTo(cell)
.shieldDropDown({
dataSource: {
data: ["motorbike", "car", "truck"]
},
value: !item["transport"] ? null : item["transport"].toString()
}).swidget().focus();
}
Если вы хотите просмотреть дополнительную информацию об опциях в виджете сетки, вы можете обратиться к этому разделу документации.
На этом наша настройка завершена, и элемент управления готов к использованию.
Посмотреть полную рабочую демонстрацию на CodePen
Не забудьте щелкнуть внутри любой ячейки содержимого в таблице / сетке, чтобы увидеть, как работает функция редактирования. Вы можете посмотреть другие примеры использования jQuery Grid компонента Shield UI на веб-сайте Shield UI .