Введение
Раскрывающийся фильтр полезен ровно настолько, насколько полезен список значений, который он предлагает. В списке с сотнями проектов, распределённых по десятку подразделений, раскрывающееся меню Проект в области фильтра показывает все проекты списка — даже после того, как пользователь уже выбрал подразделение. Большинство этих вариантов приводит к пустой таблице результатов, и пользователю приходится прокручивать их, чтобы найти те несколько, которые имеют значение.
Параметр Каскадные фильтры веб-части List Filter Online решает эту задачу. Когда он включён, каждое раскрывающееся меню предлагает только значения, которые встречаются в элементах, соответствующих другим фильтрам, выбранным в области в данный момент. Выберите Маркетинг в поле Подразделение — и меню Проект сократится до проектов отдела маркетинга. В этой статье описано, что делает параметр, как его включить, как он ведёт себя в повседневной работе и где его границы.

Что делают каскадные фильтры
Параметр влияет на два элемента управления фильтра, которые загружают свои варианты из списка, — Раскрывающееся меню и Раскрывающееся меню (множество значений). При выключенных каскадных фильтрах каждый из этих элементов загружает уникальные значения своего столбца один раз, при открытии области фильтра, и список остаётся неизменным до перезагрузки страницы или перехода пользователя в другую папку.
При включённых каскадных фильтрах веб-часть передаёт выбор, сделанный в других элементах области, в запрос, который загружает уникальные значения. SharePoint возвращает только те значения, которые существуют в элементах, удовлетворяющих этому выбору. Собственный выбор элемента управления в запрос никогда не включается, поэтому раскрывающееся меню не сужает само себя: вы всегда можете переключиться с одного проекта на другой в пределах выбранного подразделения.
Элементы управления, которые не загружают список значений, — текстовые поля, элементы даты и диапазона дат, числовые диапазоны и ползунки, выбор людей, выбор терминов, переключатель «Да/Нет» и фильтр вложений — параметром не меняются. Однако они участвуют в сужении: значение «Да/Нет» или текст, введённый в области, передаётся вместе с выбором раскрывающихся меню при перезагрузке вариантов меню.
📝 Заметка
Значения, предлагаемые в контекстном меню заголовка столбца, всегда сужаются другими активными фильтрами независимо от того, включены ли каскадные фильтры. Параметр управляет только поведением области фильтра.
Включение параметра
- Перейдите в режим редактирования страницы и откройте область свойств веб-части List Filter Online.
- Разверните группу Область фильтра.
- Убедитесь, что переключатель Область фильтра включён — переключатель Каскадные фильтры недоступен, пока сама область выключена.
- Включите Каскадные фильтры.
- В конфигураторе столбцов под переключателями назначьте элемент управления Раскрывающееся меню или Раскрывающееся меню (множество значений) столбцам, которые должны зависеть друг от друга.
- Повторно опубликуйте страницу.
Параметр по умолчанию выключен и хранится в свойствах веб-части, поэтому действует для всех посетителей страницы.

Пример сценария
В реестре проектов три столбца выбора: Подразделение, Проект и Статус. Все три помещены в область фильтра — первые два как Раскрывающееся меню, третий как Раскрывающееся меню (множество значений), — и каскадные фильтры включены.
- Пользователь открывает страницу. Каждое раскрывающееся меню показывает все значения своего столбца, поскольку ничего ещё не выбрано.
- Пользователь выбирает Маркетинг в поле Подразделение. Элементы Проект и Статус перезагружают варианты: Проект теперь показывает только проекты маркетинга, а Статус — только статусы, встречающиеся в проектах маркетинга.
- Пользователь выбирает Редизайн сайта в поле Проект. Статус перезагружается снова и показывает статусы только этого проекта. Подразделение тоже перезагружается, но по-прежнему содержит только Маркетинг, поскольку это единственное подразделение, к которому относится проект.
- Пользователь выбирает Активен и Приостановлен в поле Статус и нажимает Применить фильтр. Таблица результатов показывает подходящие элементы, а над ней появляются три чипа фильтра.
Пользователь мог бы с тем же успехом начать со Статуса и затем сузить подразделение: порядок выбора не имеет значения.
Детали поведения
Сужение начинается до нажатия «Применить». Варианты перезагружаются сразу после выбора в другом элементе управления, а не при нажатии Применить фильтр. Это позволяет пользователю сначала собрать всю комбинацию и применить её один раз.
Независимость от порядка. Каждое раскрывающееся меню сужается всеми остальными выборами в области независимо от того, какой элемент был изменён первым.
Очистка. Кнопка Очистить фильтр сбрасывает все элементы управления и убирает фильтр из результатов; поскольку выбора не остаётся, каждое раскрывающееся меню перезагружает полный список значений.
Чипы фильтра. Удаление отдельного чипа над результатами убирает это условие из таблицы результатов. Область фильтра об этом изменении не уведомляется: элемент управления сохраняет свой выбор, и остальные раскрывающиеся меню остаются суженными им, пока пользователь не выберет другое значение в этом элементе или не нажмёт Очистить фильтр.
Другие источники фильтров. В сужении участвует только выбор, сделанный в области. Фильтр, восстановленный из ссылки на фильтр, из сохранённого набора или с последнего посещения пользователя, а также фильтр, применённый через заголовок столбца, ограничивают результаты, но не сужают варианты раскрывающихся меню.
Папки. Когда веб-часть показывает содержимое папки, уникальные значения загружаются из этой папки и её подпапок, а варианты перезагружаются при каждом переходе пользователя в другую папку.
Предопределённый фильтр. Фильтр, который автор страницы задаёт в группе Фильтр с помощью конструктора запросов, ограничивает таблицу результатов, но не применяется при загрузке вариантов раскрывающихся меню. Поэтому меню может предложить значение, которое предопределённый фильтр исключает; его выбор просто не даст результатов.
Виды условий. Сужение передаётся в SharePoint в виде точных значений. Выбор в раскрывающихся меню, меню с множеством значений и переключателях «Да/Нет» сопоставляется точно. Условия других видов — диапазон дат или чисел, часть текста — передаются как введённые значения, поэтому могут сужать варианты строже, чем они сужают таблицу результатов. Условия без значения, такие как Содержит данные или Не содержит данных, при загрузке вариантов игнорируются.

Вопросы производительности
Каждое раскрывающееся меню в области отправляет в SharePoint один запрос при загрузке вариантов. Без каскадных фильтров это происходит один раз за просмотр страницы. С каскадными фильтрами каждое изменение в любом элементе области перезагружает варианты всех остальных раскрывающихся меню, поэтому область с четырьмя меню отправляет три запроса на каждый выбор. Ответы сопоставляются с последним запросом, поэтому запоздавший ответ на более ранний выбор никогда не перезапишет текущие варианты.
Для списков из нескольких тысяч элементов это незаметно. Для больших списков помогают два приёма:
- Сведите число раскрывающихся меню в области к минимуму; поместите туда столбцы, которые действительно зависят друг от друга, а для остальных используйте другие элементы управления.
- Проиндексируйте столбцы, используемые в области. Для списка с более чем 5000 элементов конфигуратор столбцов помечает каждый выбранный столбец без индекса предупреждением Столбец не проиндексирован. Фильтрация большого списка по этому столбцу может не работать. и предлагает рядом с ним кнопку Создать индекс. На запрос, загружающий суженные варианты, действует тот же порог представления списка, что и на запрос результатов.
💡 Совет
О работе List Filter Online со списками, превышающими порог представления списка, и о том, какие столбцы индексировать, см. статью KB10257. Фильтрация больших списков: индексированные столбцы и порог в 5000 элементов.
Ограничения
❗ Важно
Каскадные фильтры сужают варианты только элементов Раскрывающееся меню и Раскрывающееся меню (множество значений). Варианты выбора терминов или выбора людей не сужаются, а диапазоны ползунка или числового диапазона не пересчитываются при изменении других фильтров.
❗ Важно
Значение, выбранное в раскрывающемся меню, остаётся выбранным, даже если после изменения в другом элементе оно исчезает из суженных вариантов. Условие остаётся частью фильтра, который отправляет кнопка Применить фильтр, и таблица результатов может оказаться пустой. Чтобы разрешить такую комбинацию, выберите значение заново или нажмите Очистить фильтр.
Связанные статьи
💡 Совет
Все элементы управления области фильтра, поддерживаемые ими типы полей и доступные размеры перечислены в статье KB10255. Элементы управления области фильтра и поддерживаемые типы столбцов в List Filter Online. Общая настройка веб-части, включая источник данных и область фильтра, рассмотрена в статье KB10201. Настройка веб-части List Filter Online.