2016-11-07 5 views
1

Я пытаюсь установить значение моего dropdownList Kendo, используя приведенный ниже код и ожидая, что событие «Изменить» будет повышаться, но это не так. Может кому-то помочь.Kendo dropdownlist trigger change event

Добавлен дополнительный код в соответствии с запросом.

HTML код

<div class="col-md-12 no-padding"> 
    <select id="serviceAccounts" 
      kendo-drop-down-list 
      k-ng-model="vm.customer.serviceAccountId" 
      k-value-primitive="true" 
      k-options="vm.setServiceAccountOptions" style="width: 100%"> 
    </select> 
</div> 

Заранее спасибо!

+0

Я боюсь, что когда вы запускаете 'setServiceAccountOptions()' виджет еще не инициализирован. Можете ли вы опубликовать свой полный код? – DontVoteMeDown

+0

setServiceAccountOptions() вызов при наличии данных. Я добавил код для него. – tt0206

ответ

1
$("#serviceAccounts").trigger("change"); 

не вызывает «изменить» событие Кендо DropDownList, потому что

$("#serviceAccounts") 

Не ваш кэндо DropDownList ... это просто селектор JQuery.

Вы должны получить ссылку на фактический DropDownList, прежде чем вы можете запустить один из его событий, а именно:

var dropDownList = $("#serviceAccounts").getKendoDropDownList(); 
dropDownList.trigger("change"); 

Пример, показывающий разницу между selector.trigger() и dropdownlist.trigger(): http://dojo.telerik.com/@Stephen/UxiLo

Пример, показывающий, как вызвать событие изменения, используя угловую ссылку виджет вместо ссылки виджет JQuery: http://dojo.telerik.com/@Stephen/IToFI

+0

Спасибо за ваш ответ! Но $ ("# serviceAccounts"). GetKendoDropDownList(); приходит «неопределенным». – tt0206

+0

Вы все равно должны пытаться инициировать событие * во время инициализации * вместо * после * ... вы не можете получить ссылку на виджет, пока кендо не завершит его инициализацию. Во время setServiceAccountOptions() (где вы пытались вызвать событие перед редактированием) виджет еще не существует, поскольку DontVoteMeDown указан, так как он находится в середине кода инициализации. Итак, вам нужно сделать 2 вещи: используйте правильный синтаксис, чтобы получить ссылку на виджет И дождитесь завершения инициализации виджета, прежде чем пытаться ссылаться на него. –

+0

Спасибо, Стивен за ваш ответ – tt0206