2012-11-14 1 views
1

kendoDropDownList로 변환 한 입력 필드가 있습니다. 그것의 옵션은 사용자가 새로운 값을 선택할 때 어떤 일을하는 select 콜백이다. 사용자는 GUI를 통해 값 선택을하고 있기 때문에 이는 비트만큼 잘 작동 예컨대KendoUI kendoDropDownList 및 progmatically select callback 트리거

$("#MyDropDownList").kendoDropDownList({ 
    optionLabel: "Choose...", 
    dataTextField: "MyTextField", 
    dataValueField: "MyValueField", 
    dataSource: myDataSource, 
    select: function (e) { 
     // Do some stuff 
    } 
}); 

. 값이 선택 될 때 발생해야하는 물건이 발생합니다.

코드에서 선택 항목을 변경해야하는 경우 문제가 발생합니다. 나는 다음과 같은 것을 가지고있다 :

// Select dropdown entry by index 
$("#MyDropDownList").data("kendoDropDownList").select(0); 

내가 선택한 콜백은 호출되지 않는다. 내가 여기서 잘못하고 있는게 있니? 아니면 select에 발생하는 코드를 자신의 함수로 가져와 내가 호출해야 할 때 호출해야합니까?

답변

1

예, Kendo UI API 메소드를 호출해도 이벤트가 발생하지 않습니다. 이것은 프레임 워크를 통한 디자인 결정입니다 (한 가지 예외는 Window 위젯 제외). API를 호출 한 후 이벤트 핸들러를 수동으로 호출해야합니다.

새 선택의 유효성을 확인한 후에 select 이벤트 핸들러에서 다른 항목을 선택할 수 있다는 추론이 있습니다. 위젯이 select 이벤트를 트리거 한 경우 이는 불가능합니다 (무한 트리거 핸들 루프가 발생합니다).

+1

알렉산더가 말했듯이 (그가 저자이기 때문에 그는 나보다 훨씬 잘 알고있다.) 당신은 옳은 일을하고있다.하지만 그렇게하고 싶다면 다음과 같이하여'select' 이벤트를 트리거 할 수있다 :'$ ("#MyDropDownList"). 데이터 ("kendoDropDownList"). trigger ("select", 0); – OnaBai