首页 > 解决方案 > 当我在 kendo dropDownList 中搜索时,dataBound 命中两次

问题描述

我对剑道相当陌生,并且面临剑道 dropDownList 的问题。

我的添加/编辑弹出表单中有频道列表剑道下拉菜单。每次我保存表单并单击新的添加/编辑时,我都希望该下拉列表中保存的频道名称。我从 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() 函数。一切正常,新添加的频道显示在下拉菜单中。除非我在下拉列表中搜索/输入过滤器框(我保持更合适:“包含”)。当我搜索并选择一个选项并保存表单时,弹出表单关闭但下拉菜单打开。请参阅此图像。

这是它的样子

保存和关闭表单后,此下拉菜单会在网格上打开。调试后发现 dataBound 再次被击中。仅当我输入过滤器框并保存时才会发生这种情况。有谁知道我可以解决这个问题并防止它发生?

标签: javascriptjquerykendo-uikendo-dropdown

解决方案


推荐阅读