javascript - 当我在 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 再次被击中。仅当我输入过滤器框并保存时才会发生这种情况。有谁知道我可以解决这个问题并防止它发生?
解决方案
推荐阅读
- javascript - 由于浏览器取消请求,Chrome 扩展无法加载
- firebase - Firebase 客户端对您的实时数据库的访问权限将在 X 天后到期
- c# - 通过 Outlook 发送电子邮件
- generics - 以元组结构的类型作为参数调用泛型函数是什么意思?
- angular - 在 Angular 7 注册表单错误处理中出现错误,例如缺少电子邮件@
- node.js - NodeJS 12.x:AWS Greengrass 中未找到错误
- sqlite - 如何在 Ubuntu 18.04 上安装或升级到 sqlite 3.33.0?
- apostrophe-cms - 如何强制撇号 cms 中的页面树?
- python - 如何绘制在 Y 轴上显示总人口百分比的分布曲线
- swift - ForEach onDelete 不适用于 LazyVStack