0

我正在使用带有 EnableLoadONLoad = True 的 Telerik Combobox,即每次最终用户键入一个字母时,服务器端事件都会启动以提取该单词的记录。例如,在下拉框中,如果我输入 America,那么系统将搜索 A,然后是 AM,然后是 AME,依此类推……并提供与这些字母匹配的结果。因此,在上述情况下,系统将 ick 服务端事件 7 次。现在的问题是搜索功能需要一段时间(从 5 到 10 秒拉记录.. 超出我的控制:()我想要的是当最终用户输入某些内容时,我想等待一秒钟看看用户是否还在键入。一秒钟后,我希望系统进行搜索。希望在一秒钟内,最终用户将键入他们需要的任何内容。现在我可以强制用户输入至少 5 个字母,依此类推,但最终用户可以使用单个字母或多个字母进行搜索。他们不想被限制没有。由于业务需要的信件。

4

2 回答 2

0

默认情况下,它们的组合框上的 itemRequestTimeout 为 300,即十分之三秒。做布莱恩建议的工作,但我发现默认值通常是足够的时间才能导致回发。

此外,如果您MarkFirstMatch="true"为 ComboBoxes 合并,它将自动转到与文本匹配的项目(如果存在)。

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
   }
  }

我相信这样的事情会做你想做的事。

于 2012-05-24T21:39:21.407 回答
0

您可以指定一个以 1000 毫秒为单位的“ItemRequestTimeout”,这将告诉组合框在向服务器触发之前等待 1 秒。

于 2012-05-22T14:32:42.627 回答