Я предполагаю, что вы имеете в виду путем поиска, пользователи, введя их критерии в поле поиска по умолчанию на экране поиска. Помните, что встроенный поиск на самом деле не является поиском в базе данных, а фильтром в запросе, который вы уже получили. Поэтому, когда пользователь «ищет» что-то, он фактически фильтрует строки с экрана, но все еще находится в базовом наборе данных, привязанных к сетке.
Я не знаю о каком-либо способе перехвата встроенного поведения в поле поиска.
Один из способов реализации того, что, по вашему мнению, вы хотите, - это создать запрос и параметризовать его по необходимым критериям поиска и создать вокруг него экран поиска. Вы можете скрыть поле поиска по умолчанию, чтобы сделать его более понятным.
Например, скажем, что у меня есть таблица проектов с полем «Часы». Сначала я создаю запрос на основе проектов, где я добавляю фильтр, например «Name содержит NameParam». Сделайте этот параметр видимым на экране (используйте эту статью в качестве руководства: http://blogs.msdn.com/b/bethmassi/archive/2010/11/09/creating-a-custom-search-screen-in-visual-studio-lightswitch.aspx)
Теперь я использую трюк, это техника, которую я видел, я не на 100% удобен с ней, основан на факт, что до сих пор событие Changed текстового поля, связанного с параметром запроса, происходит после выполнения экранного запроса, но оно работает с текущей версией LS. В конструкторе выберите параметр запроса (в левой части экрана) и добавьте код для события «Изменено». В этом обработчике событий вы можете рассчитать поля, которые хотите. Например, у меня есть 2 переменные (уже определены как элементы данных):
RecordsCount = ProjectsByName.Count.ToString()
TotalHours = ProjectsByName.Sum(Function(project) project.Hours)
(VB код)
Каждый раз, когда вы вводите что-то на текстовом поле Имя и нажмите ввод или вкладку из, запрос выполняется с новые критерии, то обработчик события «Изменено» и свойства обновляют их значение.
Что-то, о чем нужно помнить, заключается в том, что для этого нужно отключить пейджинг. В противном случае он рассчитает результаты текущей страницы.
Если требуется пейджинг, вы всегда можете выполнить второй запрос, чтобы получить итоговые результаты.