Использование нескольких фильтров в веб-части фильтра
-
16-10-2019 - |
Вопрос
Я работаю над веб-частью фильтра, унаследованной от другого разработчика, и это первый раз, когда я работаю над ними.В настоящее время он допускает использование одного фильтра, и необходимо добавить еще один фильтр.Первоначальные мысли - это что-то вроде:
// Existing filter property
[ConnectionConsumer("ProgramEntityLevel", "ProgramEntityLevel", AllowsMultipleConnections = true)]
// New filter property
[ConnectionConsumer("ProgramEntityGuid", "ProgramEntityGuid", AllowsMultipleConnections = true)]
public void SetFilter(IFilterValues filterValues)
{
// ...
}
Однако, конечно, невозможно иметь несколько ConnectionConsumer
атрибуты.
Есть какие-нибудь идеи?
Решение
Я полагаю, вы используете интерфейс ITransformFilterValues (или аналогичный)?Возможно, вы захотите вместо этого рассмотреть возможность реализации устаревших интерфейсов фильтрации, поскольку, перейдя через IFilterProvider, вы можете просто отправить строку фильтра, такую как Filter1=Value1&Filter2 =Value2, в ваши подключенные потребительские веб-части.
Когда мы разрабатывали FilterZen, мы реализовали интерфейс, который вы использовали (для отправки "нескольких значений"), а также устаревшие интерфейсы (для отправки "нескольких фильтров").Это обеспечило максимальную совместимость с готовыми и сторонними потребительскими веб-частями.
Другие советы
Это не совсем ясно, чего вы хотите достичь, так что, возможно, если вы сможете прояснить характеристики для задачи?
Я не думаю, что вы можете иметь два фильтра в одной веб -части фильтра.
Возможно, лучшим дизайном было бы разделить его на две веб -части фильтрации, но согласно это Тема, дизайн для AllipmultipleConnections заключается в том, что поставщик может иметь более одного потребителя, но не наоборот. В конце ветки это, однако, кажется, возникает некоторая путаница, если это так или нет, так что вы могли бы проверить это.