感覺就像我失去了很多時間尋找這件事,仍然沒有找到任何有效的工作(當然,這工作正常)。我有一套用戶需求的嵌套網格,每個嵌套網格鑽入下一個等等,所有工作正常。它使用客戶端模板處理,它們在擴展時執行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