【问题标题】:Wait before Server Side Event kicks for telrik controls在服务器端事件启动之前等待 Telerik 控件
【发布时间】:2017-08-01 11:26:50
【问题描述】:

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

【问题讨论】:

    标签: combobox telerik


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      此外,如果您为组合框合并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
         }
        }
      

      我相信这样的事情会如你所愿。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-21
        • 2021-05-25
        • 2011-10-09
        • 1970-01-01
        相关资源
        最近更新 更多