0

我想将来自动态数据源的数据显示到列表视图中,这意味着列不是固定的,并且在请求之前无法确定。

例子:

  • 它可以返回带有列的对象列表{ 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
 });

希望有一个可能的解决方案。谢谢你。

4

1 回答 1

0

我曾经有一个类似的网格任务。也许它有助于找到列表视图的解决方案。网格包含所有可能的列。根据实际数据(一旦用户按下按钮,网格就知道预期的数据)某些列被隐藏或显示。

对于网格,您可以这样做:

grid.hideColumn("ColumnNameOrIndex");
grid.showColumn("ColumnNameOrIndex");

对于列表视图,这会稍微复杂一些,但如果您可以在绑定时向列(例如列名)添加 id/class。你应该能够使用这样的东西。

$(".myColumnType").hide();

希望它有助于找到解决方案!

于 2015-10-28T19:39:24.163 回答