問題是當使用Kendo UI Dropdownlist和dataBound方法在加載時設置選定的值。Kendo UI Dropdownlist客戶端過濾器不工作如果dataBound用於設置選定的值
設置DataBound方法中值的原因是爲了確保傳輸已返回下拉列表的數據項以防止競爭條件失敗。這在下面的靜態示例中沒有演示,但我的數據集來自傳輸服務器端調用。
設置下拉列表的選項過濾器:「startswith」對於簡單的客戶端過濾非常有效,但是由於使用了dataBound而出現問題。關於這方面的文檔很少,但dataBound在下拉列表初始化時以及任何方法對其進行操作(包括過濾)時調用。
通過將調試器放置在檢查器工具中,我能夠觀察過濾器方法的工作情況,然後再次命中dataBound方法並將其設置爲初始化值。其效果是,它看起來像過濾器只是失敗。
請看下面的例子。要重新創建問題,請嘗試使用下拉列表的過濾器功能,鍵入「Apple」並觀察發生了什麼。
$("#dropdownlist").kendoDropDownList({
dataSource: ["Apples", "Oranges"],
filter: "startswith",
dataBound: function(e) {
$("#dropdownlist").data('kendoDropDownList').value("Oranges");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//kendo.cdn.telerik.com/2016.3.914/js/kendo.all.min.js"></script>
<link href="//kendo.cdn.telerik.com/2016.3.914/styles/kendo.nova.min.css" rel="stylesheet" />
<link href="//kendo.cdn.telerik.com/2016.3.914/styles/kendo.common.min.css" rel="stylesheet" />
<input id="dropdownlist" />
我需要的數據綁定的方式來只火初始化或過濾器沒有進一步繁殖,從而避免過濾後的數據綁定的電話。