2016-08-18 13 views
1

剣道グリッドのエディタテンプレートにある私の剣道のマルチ選択から、選択したアイテムの配列を取得しようとしています。剣道のマルチセレクションから選択したデータ配列を取得

複数選択コード:

@(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のを使用して、選択した項目を抽出する - 具体的に、iは整数DataValueFieldを望みます。私はいくつかのことを試みましたが、ViewDataコレクション内の項目のインデックスではなく、適切な整数を取得できませんでした。私が試したアプローチのいくつか。

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

私は本当にここから何をすべきか、正しい配列を得るために上記の方法または別のルートを使用する方法を知りません。

ありがとうございました!

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

答えて

0

は、隠された要素にするたびに値を複数選択する.Select("onSelect")イベントを追加し、追加します次の:トリガーされますchangeイベントの

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

ドキュメントがhere見つけることができます。

また、作業例hereも書きました。

+0

これを行うと、dataItem.valueは「未定義」です。 – hallordylo

+1

更新されたコードを試すか、@Benメソッドを使用してください – Vijai

0

は、選択した項目のIDを取得するには、としてあなたのonChangeメソッドを書くことができ、ユーザが使用して項目を選択したときに

+0

これは隠し値を正しく設定する際に機能しますが、更新すると配列のすべての値が0になり、ModelState.IsValid条件が失敗します。何故ですか? – hallordylo

+0

上記のことがはるかに大きな問題の一部であったことがわかりました。これは現在解決されています。助けてくれてありがとう! – hallordylo

+0

@hallordyloあなたの問題をうれしく思います。あなたは今すぐ答えを受け入れるか、あなた自身の質問に答えて、あなたの質問を終わらせなければなりません。 –

0

あなたが考えるより簡単な答えです。

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

これは、あなたの.DataValueFieldにあるもののカンマ区切りのリストを返します。あなたの場合、カンマ区切りの 'ID'のリスト。

関連する問題