dataBound ударяется дважды, когда я ищу в кендо dropDownList - PullRequest
0 голосов
/ 16 февраля 2020

Я довольно новичок в kendo и столкнулся с проблемой с kendo dropDownList.

У меня есть список каналов kendo dropDown в моей всплывающей форме Add / Edit. И каждый раз, когда я сохраняю свою форму и нажимаю на новую кнопку «Добавить / редактировать», я хочу, чтобы сохраненное имя канала было в этом dropDownList. Я вызываю данные dropDown от SP, а затем заполняю этот DropDown.

Вот мой кендо DropDown:

function buildChannelDropDown(){
$('#ddlChannelSelect').kendoDropDownList({
  dataTextField: 'Text',
  dataValueField: 'Value',
  optionLabel: "Select Main Station",
  dataBound: function(e){
    if(!onDataBound_SelectByDefaultIfOnlyOneItem(e)) {
      var dropdownlist = $("#ddlChannelSelect").data("kendoDropDownList");
      var mainChannelDataSource = dropdownlist.dataSource;

      if(mainChannelDataSource._data.length > 0){
        dropdownlist.select(0);
      }
    }
  },
  change: function(){
    var selectedChannel = 0;
    if($('#ddlChannelSelect').val() != ""){
      selectedChannel = $('#ddlChannelSelect').val()
    }
    GetDataForSelectedChannel(selectedChannel);
  },
  filter: 'contains'
});

}

И эта моя функция, которая приносит весь список каналов из бэкэнда

  function setChannelDropDown(){
var paramObj = {
  ChannelGroupId = $("#ddlChannelGroup").val();
}
InvokeAjaxMethod('/Channel/GetChannelList', 'Get', true, paramObj, function(response){
  var channelDropDown = $('#ddlChannelSelect').data('kendoDropDownList');
  channelDropDown.setDataSource(response.Data);
});}

Я вызываю функцию setChannelDropDown () при нажатии кнопки Добавить / Редактировать. Все работает нормально, и недавно добавленный канал отображается в dropDown. За исключением случаев поиска / ввода в поле «Фильтр» в раскрывающемся меню (я сохранил форму: «содержит»). Когда я ищу и выбираю опцию и сохраняю форму, всплывающая форма закрывается, но открывается DropDown. См. Это изображение.

Вот как это выглядит

Этот DropDown открывается в сетке после сохранения и закрытия формы. После отладки стало известно, что dataBound снова получает удар. Это происходит только тогда, когда я печатаю в поле фильтра и сохраняю. Кто-нибудь знает, что я могу решить эту проблему и предотвратить это?

...