Отображать результаты поиска динамически по мере ввода - PullRequest
2 голосов
/ 08 июля 2010

Я пытаюсь создать веб-часть SharePoint 2007 в Visual Studio. Эта веб-часть должна выполнить поиск в списке sharepoint и отобразить результаты.

Что я хочу сделать, это отобразить результаты, как только пользователь перестанет печатать, поэтому нажатие кнопки не требуется.

Возможно, комбинация события text_changed и onkeydown javascript?

Любая мысль была бы отличной.

Этот сайт sharepoint поддерживает Ajax, кстати.

Спасибо

Ответы [ 4 ]

3 голосов
/ 08 июля 2010

Я бы предложил использовать jquery и keyup:

$("input#txtid").keyup(function () {
                if (this.value.length < 8)
                    return false;

                $.get("ServiceUrl", { arg: this.value }, function (result) { $("#output").html(result); });

            });
0 голосов
/ 09 июля 2010

Посмотрите на этот пример, он добавляет «поиск по мере ввода» в стандартное поле поиска SharePoint.

Автоматически добавляйте «Поиск по мере ввода» на каждую страницу SharePoint с помощью Infuser .

0 голосов
/ 09 июля 2010

Я подошел к этому, используя UpdatePanel в моей веб-части. Затем я добавил Button (подробнее об этом позже) и TextBox в UpdatePanel.

У меня также есть класс JavaScript, который обрабатывает всю логику для отправки запроса после того, как пользователь сделал паузу при вводе своего запроса. Он содержит обработчик события onkeyup, который прикреплен к TextBox:

t.Attributes.Add("onkeyup", "javascript:oSearchClass.KeyUpEventHandler(event);");

Я использовал setTimeout и clearTimeout для обработки, когда класс должен вызывать функцию SubmitQuery.

Когда вызывается SubmitQuery(), он делает TextBox доступным только для чтения (поэтому пользователь не может ничего вводить во время выполнения запросов), а затем «нажимает» кнопку, используя click(). Поскольку вы используете обычную кнопку Button, вы можете обработать событие Button.click как обычное для повторного запроса списка и отображения результатов.

Если вы не хотите, чтобы ваш пользователь видел кнопку, вы можете просто поместить ее в span WebControl, который скрыт.

0 голосов
/ 08 июля 2010

Самый простой способ позаботиться о пользовательском интерфейсе - это использовать AjaxToolkit AutoCompleteExtender se MOSS, AJAX и AutoCompleteExtender , тогда все, что вам нужно сделать, это решить, как вы хотите, чтобы поиск внутри веб-службы выполнялсяработа

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