Table of Contents

Поиск и фильтрация

Контролы TreeList и TreeView поддерживают функции, которые позволяют вам и пользователю фильтровать данные и выполнять поиск.

Панель поиска (TreeList и TreeView)

Панель поиска помогает пользователю быстро найти узлы по содержащимся в них данным. Установите для свойства SearchPanelDisplayMode контрола (унаследованного от класса DataControlBase) одно из следующих значений, чтобы включить панель поиска:

  • SearchPanelDisplayMode.Always — Контрол постоянно отображает панель поиска.
  • SearchPanelDisplayMode.HotKey — Контрол отображает панель поиска, когда пользователь нажимает горячую клавишу CTRL+F. Горячая клавиша ESC очищает панель поиска. Последующее нажатие клавиши ESC закрывает панель. Пользователь также может активировать панель поиска из контекстного меню заголовка столбца.

Контрол фильтрует данные (используя оператор сравнения Contains), когда пользователь вводит текст на панели поиска. Свойство TreeListControlBase.FilterMode указывает, какие узлы отображаются при обнаружении совпадений. Поддерживаются два режима фильтрации:

  • FilterMode.ShowMatches — Отображает узлы, соответствующие тексту поиска.
  • FilterMode.ShowMatchesWithAncestors — Отображает узлы, соответствующие тексту поиска, и их родительские узлы.

Функция поиска не чувствительна к регистру.

Связанный API

  • DataControlBase.SearchText — Получает или задает текст для поиска. Вы можете присвоить значение этому свойству, чтобы отфильтровать контрол в коде. Эта функция фильтрации поддерживается, даже если панель поиска скрыта или отключена (свойству SearchPanelDisplayMode присвоено значение SearchPanelDisplayMode.Never).
  • DataControlBase.IsSearchPanelVisible — Определяет, видна ли панель поиска в данный момент.
  • ShowSearchPanelCloseButton — Позволяет скрыть встроенную кнопку закрытия панели поиска.

Пример

Следующий код делает панель поиска всегда видимой и позволяет отображать отфильтрованные узлы вместе с их родительскими элементами. Свойство SearchText определяет текст, отображаемый на панели поиска.

treeList.SearchPanelDisplayMode = SearchPanelDisplayMode.Always;
treeList.FilterMode = FilterMode.ShowMatchesWithAncestors;
treeList.SearchText = "department";

Строка автоматической фильтрации (TreeList)

Строка автоматического фильтра - это специальная строка, отображаемая над всеми узлами TreeList. Это позволяет пользователю вводить текст в свои ячейки, чтобы отфильтровать данные по соответствующим столбцам.

Установите для свойства TreeList.ShowAutoFilterRow значение true, чтобы включить автоматическую фильтрацию строки.

Вы можете использовать свойство ColumnBase.AutoFilterCondition, чтобы указать операцию сравнения данных для определенных ячеек (столбцов) строки автоматической фильтрации. Когда пользователь вводит текст, TreeList использует указанную операцию сравнения для сравнения значений столбцов при поиске целевых узлов. Поддерживаются следующие операции сравнения данных:

  • Equals — Значения узлов в целевом столбце должны соответствовать введенному значению.
  • Contains — Значения узлов в целевом столбце должны содержать введенное значение. Этот режим подходит для строковых значений.
  • StartsWith — Значения узлов в целевом столбце должны начинаться с введенного значения. Этот режим подходит для строковых значений.
  • Default — Опция Default эквивалентна опции Contains для типов данных String и Object. Эта опция эквивалентна опции Equals для других типов данных.

Свойство ColumnBase.AutoFilterValue позволяет вам установить значение для конкретной ячейки строки автоматической фильтрации в коде. Вы можете использовать ColumnBase.AutoFilterValue для фильтрации TreeList, даже если строка автоматической фильтрации скрыта.

Режим фильтрации контрола по умолчанию заключается в отображении только тех узлов, которые соответствуют указанным критериям. Установите для свойства TreeListControlBase.FilterMode значение FilterMode.ShowMatchesWithAncestors, чтобы отображать целевые узлы вместе с их родительскими.

Функциональность фильтра не зависит от регистра.

Пример

Следующий код активирует строку автоматической фильтрации и отображает узлы, значения которых в столбце "Имя" начинаются с "M".

treeList1.ShowAutoFilterRow = true;
TreeListColumn colName = treeList1.Columns["Name"];
colName.AutoFilterCondition = AutoFilterCondition.StartsWith;
colName.AutoFilterValue = "M";

Фильтрация в коде

Свойства DataControlBase.SearchText и ColumnBase.AutoFilterValue можно использовать для фильтрации контролов TreeList и TreeView в коде, даже если панель поиска и строка автоматической фильтрации скрыты.

Если вы используете свойство DataControlBase.SearchText, TreeList фильтрует узлы путем поиска введенного текста во всех столбцах. Используется операция сравнения содержимого.

Если вы используете свойство ColumnBase.AutoFilterValue, TreeList выполняет поиск введенного текста в указанном столбце. Свойство ColumnBase.AutoFilterCondition определяет операцию сравнения.



* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.