2017-05-05 72 views
0

我可以用数据库集成(PostgresSQL)在kendoUI combobox中显示数据,但我的组合框执行速度比我预期的慢1-2秒,当我单击下拉箭头时。任何人都可以帮我解决当我点击组合框的下拉列表时如何加载数据的速度更快吗?KendoUI组合框加载数据的速度更快

+3

你能不能给我们你的代码看,你想要什么? –

+0

你有没有autoBind设置为false?如果是这样,那么只有在打开可能会导致可见延迟的部件时,才会检索小部件的数据。显示你的代码,特别是html/javascript而不是服务器。 – NigelK

+0

如果你可以让我知道如何以及在哪里发布我的代码,这将是有益的。 – Ananya

回答

0
<div class="col-sm-5 col-xs-10"> 
        <div class="col-sm-2 text-center col-xs-3"><h4>MPID</h4></div> 
        <div class="col-sm-5 col-xs-9"> 
         @(Html.Kendo().ComboBox() 
         .Name("cmbBrokers") 
          .DataTextField("MPID") 
          .DataValueField("MPID") 
          .Placeholder("--") 
          .HtmlAttributes(new { style = "width:300px" }) 
          .Events(e => { e.Change("onClientSelect"); }) 
          .Filter(FilterType.StartsWith) 
          .DataSource(source => 
          { 
           source.Read(read => 
           { 
            read.Action("GetBrokers", "BrokerMapping"); 
           }).ServerFiltering(false); 
          }) 
           .HeaderTemplate("<div class=\"dropdown-header \">" + 
        "<span>MPID</span>" + 
        "<span>Name</span>" + 
        "<span>NSCCID</span>" + 
       "</div>") 
     .FooterTemplate("Total <strong>#: instance.dataSource.total() #</strong> items found") 
     .Template("<div class=\"dropdown\"><span> #:data.MPID# </span><span>#: data.CompanyName #</span>" + "<span>#: data.NSCCID #</span></div>") 
         ) 
        </div> 

**Here is my javascript** 
<script> 
function searchData(searchText) {  
    var grid = $("#brokersGrid").data("kendoGrid"); 
    var dataSource = grid.dataSource; 

    dataSource.filter({ 
     logic: "or", 
     filters: [{ 
      "field": "MPID", 
      "operator": "startswith", 
      "value": searchText 
     }, 
      { 
       field: "CompanyName", 
       operator: "startswith", 
       value: searchText 
      }, 
      { 
       field: "NSCCID", 
       operator: "startswith", 
       value: searchText 
      }] 
    }); 
} 
function onClientSelect(e) { 
    var searchText = this.value(); 
    document.getElementById("txtSearch").value = ""; 
    searchData(searchText); 
} 
function brokersGridDataBound(e) { 
    var combo = $("#cmbBrokers").data("kendoComboBox");  
    combo.dataSource.read(); 
} 
+0

以上是我包含JavaScript的kendoUI组合框的代码请让我知道如果我错过了任何更快加载数据。 – Ananya