自定义 Kendo 下拉列表消息以替换 "no data found"

Customise Kendo dropdownlist message to replace "no data found"

在我们的 .NET Core 3 网络应用程序中,我们使用 Kendo 和我们的 razor 视图。

我们正在使用 Html.Kendo().DropDownListFor 控件,当它没有要显示的数据时,会显示文本:

“未找到数据”

我们想用自定义消息替换此字符串。我们知道我们可以替换 kendo.all.min.js 中的字符串,但我们知道一旦我们更新 Kendo.

这将被覆盖

我们如何在 DropDownListFor 控件本身内以编程方式指定文本字符串?

我建议你为你的项目创建一个 JS 文件并覆盖你想要的任何消息,这样你就可以毫无问题地更新 kendo。

现在,为了回答您的问题,在 DropDownList 的情况下,您可以像这样更改以下 属性 的值:

kendo.ui.DropDownList.prototype.options.messages.noData = 'Sorry, no data here';

您可以使用任何其他小部件来做到这一点。

您可以设置和分配模板以使用和自定义无数据消息。我还添加了带有样式的跨度,以删除 Kendo 添加的大写字母 text-transform。像这样:

<!-- Template -->
<script id="noDataTemplate" type="text/x-kendo-template">
    <span style="text-transform: none;">
        <strong>My Custom No Data Message here</strong>
    </span>
</script>

<!-- DropDownList initialization -->
@(Html.Kendo().DropDownList()
            .Name("customers")
            .DataTextField("ContactName")
            .DataValueField("CustomerID")
            .NoDataTemplateId("noDataTemplate") // Reference to the template.
            .DataSource(source =>
            {
                source.Read(read =>
                {
                    read.Action("Template_GetCustomers", "ComboBox");
                });
            })
)

这里有更多信息:https://docs.telerik.com/aspnet-core/html-helpers/editors/dropdownlist/templates#no-data-templates