Фильтруйте сетку на стороне сервера по значению, введенному в текстовом поле. - PullRequest
0 голосов
/ 13 августа 2010

Я хочу отфильтровать сетку на стороне сервера на основе значения, введенного в текстовом поле.И фильтр должен происходить, когда пользователь вводит текстовое поле.Поскольку на текстовом поле нет события на стороне сервера, такого как нажатие клавиши, я решил использовать событие onkeypress на стороне клиента и вызвать код на стороне сервера, используя PageMethod.Но затем закончилось ограничение статического PageMethod, и я не могу получить доступ к сетке из кода на стороне сервера.

< asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true" />
        <input type="text" id="txtFilterLabName" onkeypress ="txtFilterLabName_Keypress()"/>
</form>

<script type="text/javascript">
    function txtFilterLabName_Keypress() {
        // Call a server method.
        PageMethods.txtFilterLabName_Keypress();
    }
</script>

[WebMethod]

public static void txtFilterLabName_Keypress ()

{// Код для фильтрации сетки.}

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 14 августа 2010

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

Для этого вам необходимо обновить сетку на клиенте после вызова метода page. Я не верю, что стандартный элемент управления grid поддерживает это, поэтому вам нужно либо написать собственный код, чтобы сделать это, либо использовать сторонний элемент управления.

Если вы просто отображаете данные в сетке и не поддерживаете сортировку и фильтрацию, может быть легко просто обновить базовую таблицу с помощью javascript.

...