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/クラスを追加できる場合。このようなものを使用できるはずです。

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

解決策を見つけるのに役立つことを願っています!

于 2015-10-28T19:39:24.163 に答える