我希望显示来自动态数据源的列表视图数据,这意味着列不是固定的,在请求之前无法确定。
示例:
它可以返回列{ Id, FirstName, MiddleName, LastName }
或
它可以返回仅包含{ Id, LastName }
列的对象列表
这可能会发生,具体取决于所做的设置。
我有一个设置来确定在查询时应该返回哪些列。 我的设置是一个列出所有包含列的数组。
this.includedColumns = ko.observableArray(["Id", "LastName"]);
现在在我的HTML中,
<div class="col-sm-3">
<div id="items"></div>
<div id="pager" class="k-pager-wrap"></div>
</div>
<script type="text/x-kendo-tmpl" id="itemTemplate">
<div class="item" data-bind="drag: { value: $data }">
// Here I want to display what should be displayed depending on the setup
// If the return objects has columns { Id, FirstName, LastName }
// and in my setup I have only { Id, LastName }
// here I need to loop through the includedColumns list and display the columns here
Example:
<div data-bind="foreach: includedColumns">
<span>#: {{theIncludedColumnHere}} #</span>
</div>
</div>
</script>
初始化,
$("#items").kendoListView({
dataSource: myDataSource,
pageable: true,
virtual: true,
template: kendo.template($("#itemTemplate").html()),
dataBound: function () {
}
});
$("#pager").kendoPager({
dataSource: myDataSource
});
希望有一个可能的解决方案。谢谢。
答案 0 :(得分:0)
我曾经有一个类似的网格任务。也许它有助于为listview找到解决方案。 网格包含所有可能的列。根据实际数据(网格知道用户按下按钮后会有什么数据),某些列被隐藏或显示。
对于网格,您可以这样做:
grid.hideColumn("ColumnNameOrIndex");
grid.showColumn("ColumnNameOrIndex");
对于列表视图,这会更复杂,但是如果您可以在绑定时向列添加id /类(例如列名)。你应该可以使用这样的东西。
$(".myColumnType").hide();
希望它有助于找到解决方案!