2012-12-19 93 views
0

自動完成過濾我需要過濾已被選定的國家。我已經從下面的鏈接寫了代碼。
http://jsbin.com/oqucix/4劍道UI

當我定義的數據源動態我沒有得到記錄。

var countriesDS = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url : "/Home/Countries", 
      type: "POST", 

      dataType: "json" 
     } 
    }, 
    schema: { 
     model: { 
      id: "id", 
      fields: { 
       id : { type: "id" }, 
       name: { type: "string" } 
      } 
     } 
    } 
}); 

然後我將能夠重定向到該操作方法和檢索值,但在自動完成我沒有得到記錄。任何幫助表示讚賞

+0

你的jsFiddle適合我。我輸入「tur」,然後選擇土耳其作爲選項。如果我選擇土耳其,那麼文本框現在包含「土耳其」,並且我再次輸入「tur」,這次我沒有在自動填充選項中獲得土耳其。問題是什麼? – CodingWithSpike

+0

如何看起來像您使用'/ Home/Countries'服務的JSON。恐怕問題在於id不包含包含'id'和'name'的元素數組。 – OnaBai

+0

@EmilianoBartolome是的可能是這個問題。我怎麼能解決這個 – Jonathan

回答

2

這是DataSourceAutoComplete定義:

// create a datasource bound to the local data 
var countriesDS = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url  : "/Home/Countries", 
      type : "POST", 
      dataType: "json" 
     } 
    }, 
    schema : { 
     model: { 
      id : "id", 
      fields: { 
       id : { type: "id" }, 
       name: { type: "string" } 
      } 
     } 
    } 
}); 

var autoComplete = $("#auto").kendoAutoComplete({ 
    minLength  : 3, 
    separator  : ", ", 
    dataSource  : countriesDS, 
    serverFiltering: true, 
    dataTextField : "name" 
}).data("kendoAutoComplete"); 

這該是多麼的國家名單應由服務器返回。

[ 
    { "id":1, "name":"Albania" }, 
    { "id":2, "name":"Andorra" }, 
    { "id":3, "name":"Armenia" }, 
    { "id":4, "name":"Austria" }, 
    { "id":5, "name":"Azerbaijan" }, 
    ... 
] 
+0

我越來越像'[{id = 1,name =「albania」},{id = 2,name =「andorra」} ...]'這樣 – Jonathan

+0

似乎是正確的,以小寫字母的國家名稱並不重要,因爲您可以在「kendoAutoComplete」初始化過程中控制接受小寫字母名稱'ignoreCase'爲'true'(http://docs.kendoui.c​​om/api/web/autocomplete#ignorecase- booleandefault) – OnaBai