2016-08-18 29 views
1

我想從我的Kendo multiselect中獲取所選項目的數組,這是在劍道網格的編輯器模板中。從kendo multiselect獲取選定的數據數組

的多選代碼:

@(Html.Kendo().MultiSelect() 
     .Name("Staff") 
     .DataValueField("ID") 
     .DataTextField("FullName") 
     .BindTo((System.Collections.IEnumerable)ViewData["Staff"]) 
     .Events(events => events 
      .Change("onChange") 
     ) 
     .HtmlAttributes(new { @class = "col-md-7 details-editor" }) 
    ) 

我想提取使用JQuery所選項目 - 具體而言,我想要的DataValueField,這是一個整數。我嘗試了幾件事情,但一直無法獲得適當的整數,而不是ViewData集合中項目的索引。我嘗試過的一些方法。

var data = $("#Staff").data("kendoMultiSelect").dataItems(); 
var data = $("#Staff").data("kendoMultiSelect").value(); 

我真的不知道該從這裏做什麼,如何使用上述或不同的路線之一來獲得正確的int數組。

感謝您的幫助!

回答

0

一個.Select("onSelect")事件添加到多選和附加價值,以隱藏元素每次當用戶使用選擇的項目:

function onSelect(e) { 
       var item = e.item; 
       var text = item.text(); 
        var $data = $('#myHidden'); 
        $data.val($data.val() + text); 
      }; 
+0

當我這樣做時,dataItem.value是「未定義」。 – hallordylo

+1

嘗試更新的代碼或使用@Ben方法 – Vijai

0

要獲得所選項目的ID,你可以寫你的onChange方法如下所示:

var onChange = function(e) { 
var arrayOfNames = this.value(); 
// Do other stuff here... 
}; 

發生更改事件的文檔可以找到here

我也寫了一個工作示例here

+0

因此,這可以正確設置隱藏值,但是當我點擊更新時,數組中的所有值都變爲0,並且ModelState.IsValid條件失敗。這是爲什麼? – hallordylo

+0

原來上面是一個更大的問題的一部分,現在已經解決了。謝謝您的幫助! – hallordylo

+0

@hallordylo很高興你解決了你的問題。您現在應該接受一個答案或回答自己的問題,以便提出您的問題。 –

0

答案比你想象的要簡單。

$('#Staff').val(); 

這將返回逗號分隔列表中任何在您的.DataValueField。在你的情況下,一個逗號分隔的'ID'列表。

相關問題