【发布时间】:2018-01-23 14:51:13
【问题描述】:
在使用 Kendo MVC Helper 控件时,我正在使用 JavaScript (JS) 管理表单的其他方面。我有一个对 Kendo DropDown 控件的 JS 引用,该控件将“搜索文本”传递给 API 调用。显然,搜索文本可能不会返回任何结果。
如果没有返回结果,我想显示一条消息(和/或做其他事情)。但是,我无法找到要使用的正确事件。
这些是唯一“看起来”对此有用的事件:
- CHANGE:仅在数据存在且更改下拉选项时触发
- DATABOUND:仅在 API 数据存在时触发
问题:
使用 JavaScript,API 调用返回空数据集时如何显示消息?
我将继续添加一些代码...尽管您不需要它来回答这个特定问题。
示例标记:
<div class="input-group input-group-sm" style="width: 600px">
<span class="input-group-addon input-sm text-align">Search</span>
@(Html.Kendo().ComboBox()
.Name("ddlMeter")
.Filter("contains")
.Placeholder("Type Meter Name or Number...")
.DataTextField("Text")
.DataValueField("Value")
.AutoBind(false)
.MinLength(4)
.DataSource(source => source.Read(read => read.Action("findmeter", "rtf", new { area = "documents" }))
.ServerFiltering(true))
.HtmlAttributes(new { style = "width:100%;" }))
</div>
JAVASCRIPT 示例:
这只是一个示例控制器...
函数页面控制器(选项){
var that = this,
empty = {},
dictionary = {
elements: {
form: null,
ddlMeter: null,
},
instances: {
ddlMeter: null
},
selectors: {
form: 'form',
ddlMeter: '#ddlMeter'
}
};
var initialize = function (options) {
that.settings = $.extend(empty, $.isPlainObject(options) ? options : empty);
// Elements
dictionary.elements.form = $(dictionary.selectors.form);
dictionary.elements.ddlMeter = $(dictionary.selectors.ddlMeter, dictionary.elements.form);
// Kendo Objects
dictionary.instances.ddlMeter = dictionary.elements.ddlMeter.data('kendoComboBox');
// Events
dictionary.instances.ddlMeter.bind('change', that.on.change.ddlMeter);
dictionary.instances.ddlMeter.bind('dataBind', that.on.databind.ddlMeter);
};
this.on = {
change: {
ddlMeter: function (e) {
// This only fires if they CHANGE the controls choice on an existing dataset
},
databind: {
ddlMeter: function (e) {
// This wont do it if the set is empty
}
},
};
initialize(options);
};
【问题讨论】:
标签: javascript jquery kendo-ui