这是我声明我的剑道网格的方式
@(Html.Kendo().Grid<LogModel>()
.Name("ChangeLog")
.Columns(columns =>
{
columns.Bound(m => m.dateTimeChangeDate)
.ClientGroupHeaderTemplate("#=console.log(items)#")
.Title("Date and Time")
.ClientTemplate("#= ChangeDate#")
.Width("12%");
columns.Bound(m => m.Component)
.Title("Component")
.Width("8%")
.Filterable(filterable => filterable.UI("componentFilter")
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.Contains("Contains")
))
);
columns.Bound(m => m.Action)
.Title("Action")
.Width("15%")
.Filterable(filterable => filterable
.UI("actionFilter")
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.Contains("Contains")
))
);
columns.Bound(m => m.Changer)
.Title("Changer")
.Width("10%");
columns.Bound(m => m.Identifier)
.Title("On")
.Width("15%");
columns.Bound(m => m.OldValue)
.Title("Old Value")
.Width("20%");
columns.Bound(m => m.NewValue)
.Title("New Value")
.Width("20%");
})
.Filterable()
.Selectable()
.Sortable()
.Groupable()
.Resizable(resize => resize.Columns(true))
.ToolBar(toolbar =>
{
toolbar.Template(
@<text>
@*
The year is 2017, kendo does not have a realiable html server control for the excel button when we are using a template.
So we have to explicitly use the excel export command button mark up. Kendo will recoginze the k-grid-excel CSS class and configure it accoridngly.
*@
<a class="k-button k-button-icontext k-grid-excel" href="#"><span class="k-icon k-i-excel"></span>Export to Excel</a>
<span style='padding-left:35%;font-weight:bold;padding-top:7px'>@ViewBag.ProjectNumber</span>
<span style='float:right;font-weight:bold;padding-top:7px'>Total: <span id="change-log-record-count">@ViewBag.ChangeLogRecordAmount</span> records</span>
</text>
);
})
.Excel(excel => excel.AllPages(true).FileName(@ViewBag.ChangeLogType + " Change Log " + @ViewBag.ProjectNumber + ".xlsx").Filterable(true))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(p => p.Id);
})
.Read(read => read.Action("FetchChangeLogData", "ChangeLog")
.Data(".buildParam"))
)
.Events(e => e.FilterMenuInit("eresizeFilter")
.ExcelExport("modifyFormatForExcel")
.DataBound("preselectCustomFilter"))
.ClientDetailTemplateId("change-log-details-template")
)
根据此链接for kendo grid documentation,我可以在模板中使用字段列表,items
就是其中之一。但是当我尝试对网格进行分组时,我得到一个items
未定义的错误。我也试过组,它也是未定义的。我尝试了value
和field
,但这些工作正常。是否有我遗漏的东西或这个功能还没有完全实现。
更新 以下是基于链接演示的示例。我稍微修改它作为POC来演示that you can inspect items. 我知道他们使用的是Kendo UI,而我正在使用UI进行ASP.NET MVC,但除非这样做,否则这应该很重要。
更新#2
看起来只有value
和field
正在处理聚合,而items字段未定义。
更新#3
似乎.ClientGroupHeaderTemplate
可能还没有完全实现,因为他们的文档提到ClientGroupFooterTemplate
而不是另一个。
更新#4
将聚合字段count
添加到数据源后,我现在可以在模板中访问它。
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(p => p.Id);
})
.Aggregates(aggregates =>
{
aggregates.Add(p => p.dateTimeChangeDate).Count();
})
.Read(read => read.Action("FetchChangeLogData", "ChangeLog")
.Data("buildParam"))
)
答案 0 :(得分:2)
正如我在评论中提到的,我不认为你已经明白了什么&#34;项目&#34;代表。在您的示例中,如果您设置
groupHeaderTemplate: "Admin count: #=items[0].name#"
您的标题将正确显示&#34;管理员计数:Jane Doe&#34;。变量&#34; items&#34;是对绑定数据的引用。这意味着它是一个对象列表。 如果你写项目[1] .age它将显示30等。
如果您希望将行数显示为&#34; Admin count&#34;建议你可以使用
groupHeaderTemplate: "Admin count: #=items.length#"
如果您想使用项目而不是计数聚合。
通过这种方式,应该更容易理解如何准确处理变量&#34; items&#34;为了展示你需要展示的东西。
现在,如果您有任何其他问题需要解释,请问您希望在标题中显示什么内容?
答案 1 :(得分:1)
这对我来说很有用:
groupHeaderTemplate: "Admin count: #=count#"
尝试
.ClientGroupHeaderTemplate("#=count#")