Mashup Builder > Виджеты > Стандартные виджеты > Виджет "Сетка" > Конфигурирование выбора данных
Конфигурирование выбора данных
Сетка поддерживает режимы выбора одной и нескольких строк на основе конфигурации свойства RowSelection виджета. По умолчанию выбор строк отключен. Выбранные строки данных можно передать в другие виджеты или сервисы данных в мэшапе с помощью свойств виджета SelectedRows и LastClickedRow. Например, можно передавать строки данных для отображения в виджете "Линейная диаграмма". Можно также использовать свойства в качестве входных данных для сервиса данных. Можно конфигурировать выбор на панели Свойства виджета "Сетка" во время конструирования. Сетка поддерживает одиночный выбор с использованием непосредственно щелчков или множественный выбор с использованием столбца выбора строк.
Нет выбора (по умолчанию)
По умолчанию выбор данных в виджете "Сетка" отключен, и отображается только состояние наведения, когда пользователь щелкает строку, чтобы выбрать ее.
Одиночный выбор строки
Используйте одиночный выбор, чтобы позволить пользователям выбирать одну строку в сетке. Чтобы выбрать строку, щелкните любую ячейку в строке. Выбранные строки подсвечиваются с использованием определенного цвета. Этот цвет можно изменить в свойствах стиля сетки или с помощью темы стиля. Выбранная строка сохраняется в свойстве SelectedRows виджета как таблица данных.
* 
Свойство SelectedRows включает данные из исключенных столбцов сетки.
Множественный выбор строк
Если включен множественный выбор, слева в сетке добавляется столбец выбора. Можно использовать флажок в строке заголовка, чтобы выбрать все данные в сетке, или любой флажок рядом со строкой для выбора отдельных строк. Чтобы сортировать данные сетки по состоянию выбора, нажмите кнопку сортировки в заголовке столбца.
Предварительный выбор строк
Можно указать, какие строки данных в сетке выбираются по умолчанию при отображении сетки во время выполнения с помощью одного из двух свойств виджета:
DefaultSelectedRows - предварительный выбор строк данных в сетке путем ввода или привязывания значения, которое определяет диапазон, например 2–5, или разделенный запятыми список номеров, например 2,3,6. Это свойство не применяется к сетке дерева.
SelectedRows - предварительный выбор данных путем передачи таблицы данных со строками данных для выбора. Например, можно передать свойство вывода Выбранные строки сервиса данных для столбчатой диаграммы в свойство входных данных SelectedRows виджета "Сетка". Все элементы, выбранные на диаграмме, подсвечиваются в сетке.
* 
Эти свойства не влияют на выбор, когда для свойства RowSelection задано значение Нет. Чтобы выбрать одну или несколько строк, необходимо задать для свойства RowSelection значение Одиночный или Несколько.
В ThingWorx 9.3.4 и более поздних версий можно сконфигурировать выбор в сетке дерева, используя следующие свойства:
SelectFocuedItem - выбирает строки или ячейки, которые автоматически получают фокус при перемещении прямоугольника фокуса. Можно использовать свойство FocusNavigationMode, чтобы сконфигурировать элемент, получающий фокус при перемещении прямоугольника фокуса.
IDPathSeperator - задает специальный символ для использования при выборе строк, которые динамически загружаются. Можно указать путь к идентификатору строки в столбце id. По умолчанию разделителем является :;
Выбор динамически загружаемых строк в сетке дерева
Чтобы развернуть и выбрать в сетке дерева строки, которые еще не загружены в клиенте, предоставьте таблицу данных хотя бы с одним столбцом идентификаторов, обозначенным свойством IDFieldName и содержащим полный путь к идентификаторам строк для выбранной строки. По умолчанию в качестве разделителя пути используется комбинация символов двоеточия и точки с запятой :;, но ее можно изменить, задав свойство IDPathSeparator в Mashup Builder или в файле конфигурации JSON.
Например, чтобы выбрать строку с ИД ddd, создайте таблицу данных, содержащую столбец со значением ИД:
//aaa:;bbb:;ccc:;ddd.
По умолчанию в свойство SelectedRows таблицы данных передается только идентификатор потомка, если выбрана дочерняя строка. Чтобы включить полный путь к идентификатору для выбранного потомка, задайте для свойства IncludeRowExpansionParents значение true. Если таблица данных выбранных строк отправлена в сетку, а перечисленная строка сеткой еще не загружена, то сетка дерева автоматически генерирует запрос к привязанному сервису данных.
Отключение строк в сетке
Можно добавить в данные сетки столбец таблицы данных, который управляет выключением для каждой строки в сетке. Чтобы отключить данные в сетке, выполните следующие шаги.
1. На панели Свойства задайте для свойства AllowDisabledNodes значение true.
2. Выберите столбец таблицы данных с данными для состояния отключения с помощью свойства DisabledStateField.
Чтобы отключить строки потомков для отключенной родительской строки в сетке дерева, включите свойство DisableChildNodes.
3. Щелкните Сохранить, а затем просмотрите мэшап.
Данные отключенного состояния применяются к строкам во время выполнения.
Передача выбранных данных
Можно использовать свойство SelectedRows сетки для передачи выбранных данных в сетке, если для выбора строки задано значение Одиночный или Несколько. Это свойство имеет двустороннее направление привязки. Можно привязать свойство в качестве выходных данных или входных данных. Используйте выходную привязку, чтобы передать выбор сетки в другой сервис данных или виджет, или в качестве входных данных привязки для управления выбором строк с помощью виджета или сервиса данных. Чтобы передать данные из сетки, в которой отключен выбор строк, используйте свойство LastClickedRow таблицы данных. Это свойство имеет только направление исходящей привязки, и его можно использовать для передачи данных таблицы данных последней выбранной строки в сетке.
Реакция на события выбора строк
Если пользователь выбирает или щелкает строку во время выполнения, инициируется событие RowClicked. При включении одиночного или множественного выбора генерируется дополнительное событие SelectedRowsChanged. Можно использовать одно из этих событий для выполнения сервисов данных или сервисов в функциях и виджетах.
Было ли это полезно?