当没有显示结果时,在Kendo MVC网格中显示消息

Tim*_*ant 2 telerik kendo-asp.net-mvc

我需要在主Kendo网格区域中显示友好的错误消息,而不是显示空白内容区域.

这与此问题类似,但我使用的是Kendo MVC,并且正如Telerik的帮助报告所述:"在Windows MVC的Kendo UI Grid中没有NoRecordsTemplate"

我提供了我想出的解决方案作为答案(与另一个问题上的解决方案类似).我对解决方案不太满意,因为很难自定义错误消息.

The*_*hen 5

根据要求,这是工作示例:

我使用了我安装的最古老的Kendo版本(2015.2.902,但我也用2016.3.914完成了),只是修改了安装文件夹中示例解决方案的Filter Row示例(C:\ Program Files(x86)\Telerik\UI for ASP.NET MVC Q2 2015\wrappers\aspnetmvc\Examples\VS2015).

我修改了文件:

C:\ Program Files(x86)\ Telerik\UI for ASP.NET MVC Q2 2015\wrappers\aspnetmvc\Examples\VS2015\Kendo.Mvc.Examples\Areas\razor\Views\grid\filter_row.cshtml

然后将.NoRecords()添加到网格和<style>块的剃须刀中:

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>()
.Name("grid")
.Columns(columns =>
{
    columns.Bound(p => p.OrderID).Filterable(ftb => ftb.Cell(cell => cell.ShowOperators(false))).Width(220);
    columns.Bound(p => p.ShipName).Width(500).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains")));
    columns.Bound(p => p.Freight).Width(250).Filterable(ftb => ftb.Cell(cell => cell.Operator("gte")));
    columns.Bound(p => p.OrderDate).Format("{0:MM/dd/yyyy}");
})
.Pageable()
.Sortable()
.Scrollable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(20)
    .ServerOperation(true)
    .Read(read => read.Action("Orders_Read", "Grid"))
 )
 .NoRecords(x => x.Template("<div class='empty-grid'></div>"))
)

<style>
.empty-grid::before {
    padding: 1em;
    line-height: 3em;
    content: "No records found.";
}
</style>
Run Code Online (Sandbox Code Playgroud)

这是输出: 在此输入图像描述