感觉就像我失去了很多时间寻找这件事,仍然没有找到任何有效的工作(当然,这工作正常)。我有一套用户需求的嵌套网格,每个嵌套网格钻入下一个等等,所有工作正常。它使用客户端模板处理,它们在扩展时执行ajax调用,然后显示数据。Kendo Grid Fluent API DataBound事件为Child Grid显示无项目文本?
我的问题是,如果没有结果的扩展之一,剑道只显示子网格标题,没有别的。当我连接到DataBound事件时(在网格上,.Events(e => e.DataBound(“myJavaScriptFunctionName”)),这不是Kendo网格,并且如果我传递了孩子kendo网格的名称(这是独特的通过使用#=#键),它给了我在我的数据源0项。
我不知道这是否是因为它做一个ajax后回来,然后OnDataBound火灾它才回来?
我只需要显示“未找到任何项目”的消息,使用户更好的体验时,有没有数据(这真的只是发生在最低水平)
够了的话,这里是一些示例代码:
<script id="SecondToLastTemplate" type="text/kendo-tmpl">
@(Html.Kendo().Grid<CustomerViewModel>()
.Name("SumGrid_#=ResultYear#_#=ResultQuarter#_#=ResultMonth#_#=ResultWeekStart#_#=ResultDate#_#=Region#")
.Columns(column =>
{
column.Bound(x => x.CustomerName).Width("23%");
column.Bound(x => x.CustomerSummaryItem1).Width("14%");
column.Bound(x => x.CustomerSummaryItem2).Width("14%");
column.Bound(x => x.CustomerSummaryItem3).Width("14%");
})
.DataSource(dataBinding => dataBinding
.Ajax()
.PageSize(500)
.Read(read => read.Action("GetCustomerSummaryItems", Constants.Controller_ReportController, new
{
ResultYear = "#=ResultYear#"
,ResultQuarter = "#=ResultQuarter#"
,ResultMonth = "#=ResultMonth#"
,ResultWeekStart = "#=ResultWeekStart#"
,ResultDate = "#=ResultDate#"
,Region = "#=Region#"
}))
)
.Scrollable(scrolling => scrolling.Enabled(false))
.Sortable()
.Filterable(filtering => filtering.Enabled(true))
.ClientDetailTemplateId("LastTemplate")
.Pageable(paging => paging.Enabled(false))
.ToClientTemplate()
)
</script>
<script id="LastTemplate" type="text/kendo-tmpl">
@(Html.Kendo().Grid<CustomerDetailsViewModel>()
.Name("SumGrid_#=ResultYear#_#=ResultQuarter#_#=ResultMonth#_#=ResultWeekStart#_#=ResultDate#_#=Region#_#=CustomerName#")
.Columns(column =>
{
column.Bound(x => x.CustomerDetails1).Width("23%");
column.Bound(x => x.CustomerDetails2).Width("20%");
column.Bound(x => x.CustomerDetails3).Width("35%");
column.Bound(x => x.CustomerDetails4).Width("14%");
})
.DataSource(dataBinding => dataBinding
.Ajax()
.PageSize(500)
.Read(read => read.Action("GetCustomerDetails", Constants.Controller_ReportController, new
{
ResultYear = "#=ResultYear#"
,ResultQuarter = "#=ResultQuarter#"
,ResultMonth = "#=ResultMonth#"
,ResultWeekStart = "#=ResultWeekStart#"
,ResultDate = "#=ResultDate#"
,Region = "#=Region#"
,CustomerName = "#=CustomerName#"
}))
)
.Events(e => e.DataBound("onDataBound"))
.Scrollable(scrolling => scrolling.Enabled(false))
.Sortable()
.Filterable(filtering => filtering.Enabled(true))
.Pageable(paging => paging.Enabled(false))
.ToClientTemplate()
)
</script>
OnDataBound我已经尝试了一些东西,包括从这个线程(Display a message within the Kendo grid when it's empty)没有运气的答案。那个人总是告诉我,我的数据源中有0个项目(原来它是未定义的,然后我传递了网格名称,但仍然没有运气)。
有没有人有一个很好的方式,只是说“没有项目显示”,而使用Fluent API嵌套网格?我觉得我在这里错过了一些简单的东西。
谢谢!
这也帮助我..一年后:)! – 2016-01-14 13:02:22