Исключить элементы из метода автозаполнения - PullRequest
0 голосов
/ 13 августа 2010

У меня есть следующий код, который извлекает список элементов, используемых в расширителе автозаполнения текстового поля:

    return autocomplete.tblAutoCompletes
            .Where(p => p.MemberId == memberid && p.LocationId == locationid && p.ACItem.Contains(prefixText))
            .OrderBy(p => p.ACItem)
            .Select(p => p.ACItem)
            .Take(count)
            .ToArray();

Где memberid и locationid являются сеансами.

В этом списке элементовУ меня есть некоторые, которые я могу исключить в зависимости от предпочтений пользователя.Это предпочтение также сохраняется как сеанс.

Так, например, у меня есть следующая таблица:

ACItem ACColumn
aa  Product
ab  Product
ac  Product
ad  Status
ae  Status
af  Status
ag  Category
ai  Category
aj  Category

Если я введу «а» в текстовое поле, все продукты ACItems будут отображаться.

Однако может быть сценарий, при котором я не хочу, чтобы пользователи автозаполнения отображали определенный статус и / или продукт.Например, я не хочу, чтобы пользователь видел статус «af» или категорию «ai».

У меня есть эти настройки, сохраненные как сеанс, когда пользователь входит в систему (то есть «DoNotDisplayaf» или «DoNotDisplayai»")

Как мне изменить исходный метод, чтобы автозаполнение учитывало эти исключения?

Извиняюсь за толстость, и если мой вопрос / пример немного туманный.

Спасибо за любую помощь.

1 Ответ

1 голос
/ 13 августа 2010

Не совсем уверен, что я следую, но, если вы не хотите, чтобы отображались все категории продуктов, не могли бы вы отфильтровать их в предложении Where вашего запроса linq?

.Where(p => p.MemberId == memberid 
     && p.LocationId == locationid 
     && p.ACItem.Contains(prefixText) 
     && shouldBeDisplayed(p)) 

ShouldBeDisplayed - это функция, которая проверяет данный элемент с условиями в состоянии сеанса, чтобы определить, должны ли они отображаться или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...