2012-05-21 6 views
0

Я использую Telerik Combobox с EnableLoadONLoad = True. Каждый пользователь в конце времени вводит букву, а на стороне сервера выдает записи для этого слова. Например, в раскрывающемся списке, если я нахожу Америку, тогда система будет искать A, затем AM, затем AME и т. Д. ... и приносит результаты, соответствующие этим буквам. Таким образом, в приведенном выше случае система будет игнорировать серверное событие 7 раз. Теперь проблема в функции поиска занимает некоторое время (в любом месте от 5 до 10 секунд, чтобы вытащить записи .. вне моего контроля :() Что я хочу, когда конечный пользователь вводит что-то, я хочу подождать секунду, чтобы узнать, набрав. Через секунду я хочу, чтобы система отправилась на поиск. Надеясь, что в течение секунды конечный пользователь напечатает все, что им нужно. Теперь я могу заставить пользователя ввести минимум 5 букв и т. д., но конечный пользователь может выполнить поиск с помощью одна буква или несколько букв. Они не хотят ограничиваться буквами из-за бизнес-требований.Подождите, пока серверная сторона не выйдет из строя для элементов управления telrik

ответ

0

Вы можете просто указать «ItemRequestTimeout» в миллисекундах 1000, которые будут сообщать выпадающим спискам в течение 1 секунды перед запуском на сервер.

0

ЭлементRequestTimeout в своих comboboxes составляет 300 по умолчанию - 3 десятых секунды. сделав то, что Брайан предложил работать, но я обнаружил, что по умолчанию обычно достаточно времени, прежде чем он вызывает обратную передачу.

Также, если вы используете MarkFirstMatch="true" для ComboBoxes, он автоматически перейдет к элементу, который соответствует тексту, если он существует.

http://demos.telerik.com/aspnet-ajax/combobox/examples/populatingwithdata/autocompletesql/defaultcs.aspx

Это должно дать вам некоторые другие варианты, а также.

Но если вы заставляете пользователя вводить 5 букв до того, как появится обратная передача, вам, вероятно, нужно будет сделать onkeyup и onkeydown события javascript, чтобы проверить, введен ли они 5 символов, а затем вы можете вызвать обратную передачу.
Или вы можете использовать свойство OnClientkeyPressing для выпадающих списков Telerik для проверки.

function OnClientKeyPressing(comboBox, args) 
    { 
     if (comboBox.get_text().length > 4) { 
     //Do postback here 
    } 
    } 

Что-то вроде этого будет делать то, что вы хотите, я верю.

Смежные вопросы