2012-05-21 78 views
0

我正在使用Telerik Combobox和EnableLoadONLoad = True即每次最終用戶鍵入一個字母,服務器端事件就會啓動以爲該字提取記錄。例如,在下拉框中,如果我輸入America,那麼系統將搜索A然後搜索AM然後AME等等,並帶來匹配這些字母的結果。所以,在上面的情況下,系統會惹起服務器端事件7次。現在問題是搜索功能需要一段時間(任何地方從5到10秒拉記錄..超出我的控制:()我想要的是當最終用戶鍵入的東西,我想等待一秒鐘,看用戶是否仍然打字後,我希望系統能夠搜索,希望在一秒鐘內,最終用戶可以輸入他們需要的任何內容,現在我可以強制用戶輸入最少5個字母,但最終用戶可以用一個字母或多個字母,他們不希望因爲業務需求而受到信件數量的限制等待服務器端事件爲telrik控件啓動

回答

0

您可以指定一個以毫秒爲單位1000的'ItemRequestTimeout',它會告訴組合框等待1秒然後發射到服務器

0

他們的comboboxes上的itemRequestTimeout是300默認值是十分之三秒。做什麼布賴恩建議會工作,但我發現默認通常足夠的時間才導致回發。

此外,如果您爲ComboBoxes合併MarkFirstMatch="true",它將自動轉到與文本匹配的項目(如果存在)。

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

這應該給你一些其他的選擇也是如此。

但是,爲了強制用戶在回發之前輸入5個字母,您可能需要執行onkeyup和onkeydown JavaScript事件來檢查它們是否輸入了5個字符,然後才能導致回發。
或者您可以使用Telerik組合框的OnClientkeyPressing屬性來執行檢查。

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

這樣的事情會做你想做的事我相信。