Kendo UI 网格、组 Header 使用行模板时未折叠
Kendo UI Grid, Group Header not collapsed when using row template
我正在使用 Kendo UI 网格,默认情况下它有一个组。在组 header 中,它显示了一些聚合信息。它还使用行模板来显示行信息,即显示 'True' 的复选标记,'False' 的叉标记。代码如下:
<script id="rowTemplate" type="text/x-kendo-tmpl">
<tr>
<td>
</td>
<td>
#: Portfolio #
</td>
<td>
#: Folder #
</td>
<td>
#: FileName #
</td>
<td>
#: DocumentType #
</td>
<td>
#: ActionTime #
</td>
<td>
#: UserName #
</td>
<td>
#: CompanyName #
</td>
<td>
<img src="Images/downloaded_#:data.Downloaded#.png" alt="downloaded_#:data.Downloaded#.png" />
</td>
</tr>
</script>
var dataSource = new kendo.data.DataSource( {
schema: {
model: {
fields: {
... (some other fields)
DocumentType: { type: "string" },
CompanyName: { type: "string" },
Downloaded: { type: "number" }
}
}
},
pageSize: 200,
group: {
field: "CompanyName", aggregates: [
{ field: "CompanyName", aggregate: "count" },
{ field: "DocumentType", aggregate: "count" },
]
},
aggregate: [{ field: "CompanyName", aggregate: "count" },
{ field: "DocumentType", aggregate: "count" },
{ field: "Downloaded", aggregate: "sum" },
]
});
... (some other configurations)
dataSource: dataSource,
columns: [
... (some other fields)
{
field: "DocumentType", title: "Document Type", width: "80px"
},
{
field: "CompanyName", title: "Company Name", width: "100px"
, aggregates: ["count"]
, groupHeaderTemplate: "Company Name: #=value# (#=getDownloaded(data)# / #=count#)"
},
{
field: "Downloaded", title: "Downloaded", width: "50px"
},
],
sortable: true,
filterable: true,
selectable: true,
pageable: {
refresh: false,
pageSizes: [10, 20, 50, 100, 200], // true,
buttonCount: 5
},
scrollable: false,
rowTemplate: $.proxy(kendo.template($("#rowTemplate").html()), dataSource),
});
它工作正常并正确显示网格。但是,如果我单击折叠组 header(下面屏幕截图中的黄色圆圈),它不起作用。但是如果我不使用行模板,即注释掉这一行:
rowTemplate: $.proxy(kendo.template($("#rowTemplate").html()), dataSource),
然后它工作正常(但我想显示已下载列的图像)。
这是 Kendo 中的错误吗?任何人都知道我做错了什么?谢谢。
这并没有回答这是否是错误的问题,但您可以查看这是否使您的网格正常工作。您遇到行 header 未折叠的问题。想知道是否有隐藏的异常。作为一种解决方法,您可以使用与添加行模板相同的方式使用列模板将图像添加到列中。您是否也尝试过不使用 $.proxy?
...
{
field: "Downloaded", title: "Downloaded", width: "50px" ,
template: kendo.template($("#tmpColumnDownload").html())
}
..
<script id="tmpColumnDownload" type="text/x-kendo-template">
<img src="Images/downloaded_#=Downloaded#.png" alt="downloaded_#=Downloaded#.png" />
</script>
我正在使用 Kendo UI 网格,默认情况下它有一个组。在组 header 中,它显示了一些聚合信息。它还使用行模板来显示行信息,即显示 'True' 的复选标记,'False' 的叉标记。代码如下:
<script id="rowTemplate" type="text/x-kendo-tmpl">
<tr>
<td>
</td>
<td>
#: Portfolio #
</td>
<td>
#: Folder #
</td>
<td>
#: FileName #
</td>
<td>
#: DocumentType #
</td>
<td>
#: ActionTime #
</td>
<td>
#: UserName #
</td>
<td>
#: CompanyName #
</td>
<td>
<img src="Images/downloaded_#:data.Downloaded#.png" alt="downloaded_#:data.Downloaded#.png" />
</td>
</tr>
</script>
var dataSource = new kendo.data.DataSource( {
schema: {
model: {
fields: {
... (some other fields)
DocumentType: { type: "string" },
CompanyName: { type: "string" },
Downloaded: { type: "number" }
}
}
},
pageSize: 200,
group: {
field: "CompanyName", aggregates: [
{ field: "CompanyName", aggregate: "count" },
{ field: "DocumentType", aggregate: "count" },
]
},
aggregate: [{ field: "CompanyName", aggregate: "count" },
{ field: "DocumentType", aggregate: "count" },
{ field: "Downloaded", aggregate: "sum" },
]
});
... (some other configurations)
dataSource: dataSource,
columns: [
... (some other fields)
{
field: "DocumentType", title: "Document Type", width: "80px"
},
{
field: "CompanyName", title: "Company Name", width: "100px"
, aggregates: ["count"]
, groupHeaderTemplate: "Company Name: #=value# (#=getDownloaded(data)# / #=count#)"
},
{
field: "Downloaded", title: "Downloaded", width: "50px"
},
],
sortable: true,
filterable: true,
selectable: true,
pageable: {
refresh: false,
pageSizes: [10, 20, 50, 100, 200], // true,
buttonCount: 5
},
scrollable: false,
rowTemplate: $.proxy(kendo.template($("#rowTemplate").html()), dataSource),
});
它工作正常并正确显示网格。但是,如果我单击折叠组 header(下面屏幕截图中的黄色圆圈),它不起作用。但是如果我不使用行模板,即注释掉这一行:
rowTemplate: $.proxy(kendo.template($("#rowTemplate").html()), dataSource),
然后它工作正常(但我想显示已下载列的图像)。
这是 Kendo 中的错误吗?任何人都知道我做错了什么?谢谢。
这并没有回答这是否是错误的问题,但您可以查看这是否使您的网格正常工作。您遇到行 header 未折叠的问题。想知道是否有隐藏的异常。作为一种解决方法,您可以使用与添加行模板相同的方式使用列模板将图像添加到列中。您是否也尝试过不使用 $.proxy? ...
{
field: "Downloaded", title: "Downloaded", width: "50px" ,
template: kendo.template($("#tmpColumnDownload").html())
}
..
<script id="tmpColumnDownload" type="text/x-kendo-template">
<img src="Images/downloaded_#=Downloaded#.png" alt="downloaded_#=Downloaded#.png" />
</script>