在 MVC KendoUI ComboBox 发出的每个请求之前,我需要更改一些 HTML 元素 - 并且我必须在 JavaScript Controller 中执行此操作(而不是 MVC 代码)。
问:如何从现有数据源连接到“RequestStart”?
JavaScript Controller :
我这里只展示初始化方法...
var initialize = function (options) {
that.settings = $.extend(empty, $.isPlainObject(options) ? options : empty);
// Elements
var ddlPrimaryCircuitPath = $(dictionary.selectors.ddlPrimaryCircuitPath, dictionary.elements.form);
// Kendo Objects
var primaryCircuitPath = $(dictionary.selectors.ddlPrimaryCircuitPath, dictionary.elements.form).data('kendoComboBox');
// Events
// THIS DOESNT WORK EITHER
primaryCircuitPath.bind('requestStart', function(){
console.log('requestStart: you did it.');
});
}
MVC 对象定义:
我无法以任何方式改变它...
@(Html.Kendo().ComboBox()
.Name("ddlSecondaryCiruitPath")
.Filter("contains")
.Placeholder("Select Circuit Path...")
.DataTextField("CircuitFullName")
.DataValueField("Circuit.Id")
.AutoBind(false)
.MinLength(4)
.DataSource(source => source.Read(read => read.Action("listcircuitdata", "api/dataitem", new { area = "" }))
.ServerFiltering(true))
.HtmlAttributes(new { style = "width:100%;" }))
最佳答案
requestStart
是一个数据源事件,而不是 ComboBox 事件。所以替换这个:
primaryCircuitPath.bind('requestStart', function(){
console.log('requestStart: you did it.');
});
用这个:
primaryCircuitPath.dataSource.bind('requestStart', function(){
console.log('requestStart: you did it.');
});
http://docs.telerik.com/kendo-ui/api/javascript/ui/combobox#fields-dataSource
http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#events-requestStart
关于javascript - 在 KendoUI MVC ComboBox 上覆盖 'Request Start',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594315/