2013-03-05 150 views
1

我有一個綁定到遠程傳輸的Kendo UI自動完成功能,我需要調整它的工作方式並且空白。遞增更新Kendo UI自動完成

目前,我在服務器上執行一堆搜索,並將結果集成到JSON響應中,然後將其返回給自動完成的數據源。問題是這可能需要很長時間,我們的應用程序對時間敏感。

我們已經確定哪些搜索是最重要的,並發現1次搜索佔所選結果的95%。不過,我仍然需要提供其他搜索的數據。我正在考慮在服務器上啓動單獨的數據請求,並在它們返回時將它們添加到自動完成功能中。我們的主要搜索返回速度非常快,並將成爲列表中的第一項。然後,當其他搜索返回時,我希望它們動態添加到列表中。

我們的應用程序使用了knockout.js,我考慮將數據源作爲我們視圖模型的一部分,但是從環顧四周,Kendo不會根據您的觀察對象的更改進行更新。

我目前難住,任何建議都會受到歡迎。

編輯:

我一直在嘗試,並取得了一些成功模擬我想要什麼用以下數據源:

var dataSource = new kendo.data.DataSource({ 
transport: { 
    read: { 
     url: window.performLookupUrl, 
     data: function() { 
      return { 
       param1: $("#Input").val() 
      }; 
     } 
    }, 
    parameterMap: function (options) { 
     return { 
      param1: options.param1 
     }; 
    } 
}, 
serverFiltering: true, 
serverPaging: true, 
requestEnd: function (e) { 
    if (e.type == "read") { 
     window.setTimeout(function() { 
      dataSource.add({ Name: "testin1234", Id: "X1234" }) 
     }, 2000); 
    } 
} 
}); 

如果第一搜索返回的結果,在2秒鐘後,一個新的項目彈出列表中。但是,如果第一次搜索失敗,則不會發生任何事情。使用(濫用)requestEnd是否合適?我最終的目標是從這個功能開始其餘的搜索。

+0

第一次搜索如何失敗?是否有任何JavaScript錯誤或返回錯誤狀態碼?這聽起來像你分享應該工作正常 – 2013-03-05 19:16:48

+0

我猜搜索不會失敗。如果沒有返回搜索結果或空的JSON響應,則不會顯示自動完成。 – xocomil 2013-03-05 19:32:58

回答