2017-05-05 70 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