2016-08-18 3 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를 사용하여 선택한 항목을 추출 할 - 특히, 내가 정수입니다 DataValueField을합니다. 몇 가지를 시도했지만 ViewData 컬렉션에있는 항목의 인덱스가 아니라 적절한 정수를 가져올 수 없습니다. 내가 시도한 접근법 중 일부.

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

위의 경로 중 하나를 사용하여 올바른 int 배열을 얻는 방법을 알지 못합니다.

도움 주셔서 감사합니다.

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

답변

0

숨겨진 요소마다 값을 다중 선택에 .Select("onSelect") 이벤트를 추가하고 추가 다음 : 트리거됩니다 변경 이벤트에 대한

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'목록을 구분합니다.

관련 문제