2013-04-01 103 views
5

我一直在使用新的Kendo UI Multiselect小部件进行服务器端过滤,但我很难让它在输入最少数量的字符后才进行ajax调用。我已将autoBind和minLength选项分别设置为false和3。然而,只要我将光标放入文本字​​段,它就会发送一个ajax请求来获取选择选项。在发送另一个Ajax请求并刷新选项列表之前,它一直等到输入3个字符(或更多)。但是,如何在发送第一个ajax请求之前等待3个字符的输入?这里是我是如何配置的多选:Kendo UI Multiselect

$('#delegates').kendoMultiSelect(
     { 
      autoBind: false, 
      minLength: 3, 
      placeholder: 'Select delegates...', 
      dataTextField: 'name', 
      dataValueField: 'personid', 
      filter: 'contains', 
      delay: 200, 
      dataSource: { 
       serverFiltering: true, 
       transport: { 
        read: { 
         url: '/my/remote/url', 
         dataType: 'json' 
        } 
       } 
      } 
     } 
    ); 

我已经看过了overviewAPI docs有关KendoUI网站上的多选部件,它甚至没有出现,有一种方法可以做什么,我我在谈论(我最初认为autoBind:false和minLength:3是我的答案,但事实证明不是)。所以,我的“M张贴在,也许我错过了提前一些感谢的希望

+0

它不会阻止初始错误,但是如果发布的值是空字符串,您不能忽略服务器方法,并且不返回任何内容? – Shion

+0

@Shion - 是的,我想到了这一点,它确实有道理。不过,这似乎是一种解决方法,所以我想确保没有内置的方法让它等待ajax调用。如果没有,我可能会完全按照你的建议。 – tonyg

回答

0

我会去的解决方法

如果我在这里检查KendoUI演示:。Server Filtering Demo有萤火,初始呼叫是在页面加载后立即生成的 我认为这是设计,并且与当前版本的小部件中的预期一致

由于这是一个新的小部件,请尝试联系Kendo团队。有点运气,在下一个版本(或其间的一些测试版)中会有这个选项。

+0

嗨,那么是否有解决此问题的Kendo的新版本? – tbgox

+0

我不知道。尝试摆弄他们的演示,并用萤火虫/网络检查员检查他们。另外做一个最小的演示测试这种行为。如果您收到任何信息,请通过在此发表评论告诉我们,我会更新我接受的答案。 – Shion

1
$("#products").kendoMultiSelect({ 
         placeholder: "Select products...", 
         dataTextField: "name", 
         dataValueField: "id", 
         autoBind: false, 
         dataSource: { 
          transport:{ 
           read:{ 
            url:'products/api/get', 
            serverPaging:true, 
            pageSize:20, 
            contentType:'application/json; charset=utf-8', 
            type:'GET', 
            dataType:'json' 
           } 
          } 
         } 
        });