我有一个KendoUI组合框的MVC控件,它不会提前设置更改事件。在渲染时,页面控制器在其自己的更改事件中设置垫片&。KendoUI组合框更改事件多次运行
奇怪的是,这个事件被调用两次:
- 当我改变所选择的项目
- 当我从控制点击即可
问:什么我做错了吗?
问:难道我们应该在现有的Kendo ComboBox上覆盖改变事件吗?
MVC控制:
正如你所看到的,我这里没有定义任何客户端事件...
@(Html.Kendo().ComboBox()
.Name("ddlTechnician")
.Filter("contains")
.Placeholder("Select Technician...")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>() {
new SelectListItem() { Text = "Frank", Value = "1" },
new SelectListItem() { Text = "Suzie", Value = "2" },
new SelectListItem() { Text = "Ralph", Value = "3" }
})
.Suggest(true)
.HtmlAttributes(new { style = "width:300px;" }))
页面控制器:
而且,我只定义一次事件在这里。我也证实该事件是不是已经发射前的页面控制器设置它
$(document).ready(function() {
var PageController = (function ($) {
function PageController(options) {
var that = this,
empty = {},
dictionary = {
elements: {
form: null
},
instances: {
ddlTechnician: null
},
selectors: {
form: 'form',
ddlTechnician: '#ddlTechnician'
}
};
var initialize = function (options) {
that.settings = $.extend(empty, $.isPlainObject(options) ? options : empty);
dictionary.elements.form = $(dictionary.selectors.form);
// Objects
dictionary.instances.ddlTechnician = $(dictionary.selectors.ddlTechnician, dictionary.elements.form).data('kendoComboBox');
// Events
dictionary.instances.ddlTechnician.setOptions({ change: that.on.change.kendoComboBox });
};
this.settings = null;
this.on = {
change: {
kendoComboBox: function (e) {
// This is getting called MULTIPLE TIMES
console.log('kendoComboBox RAN');
}
}
}
};
initialize(options);
}
return PageController;
})(jQuery);
var pageController = new PageController({});
});
那么你的问题是什么? – Orilux
对不起人,但你有GOT开玩笑!我们处于危险境地吗?我们真的必须“以问题的形式回答”吗?人们能否在这里看到SIMPLE推理? 事件正在运行TWICE ....并且不应该。 –
对不起,我的意思不是讽刺或任何事情。这有助于明确界定问题。 – Orilux