Unplanned
Last Updated: 14 Mar 2025 08:16 by Kendo UI
Created by: Kendo UI
Comments: 0
Category: ListView
Type: Feature Request
1

The ListView component currently has an endless scrolling feature that allows the developer to load more items on demand. However, when all items are loaded upon continuous scrolling, there can be some issues in performance due to the large number of rendered DOM elements at the same time. 

For this reason, providing a virtualization functionality that renders only a limited number of elements at a time will be useful in improving the performance of the ListView when a large number of items are used. 

Unplanned
Last Updated: 03 Jul 2024 07:11 by ADMIN
Created by: Kendo UI
Comments: 0
Category: ListView
Type: Feature Request
2

Provide a pager template to customize the pager elements of the ListView, or another mechanism to change the labels ('items per page', 'n-n of n items').

Declined
Last Updated: 01 Sep 2023 12:30 by ADMIN

Here is a simple example:

HTML:

<kendo-listview
  [height]="400"
  [data]="notes$ | async"
  class="k-d-flex-overflow-auto"
  (scrollBottom)="loadMore()">
  <ng-template kendoListViewHeaderTemplate>
    <span title>Reminders</span>
  </ng-template>
  <ng-template kendoListViewItemTemplate let-dataItem="dataItem">
    <app-message-note [note]="dataItem"></app-message-note>
  </ng-template>
</kendo-listview>

TS: 

@Component({
  selector: 'app-message-list',
  templateUrl: `./message-list.component.html`,
  styles: [
    `
      .k-d-flex-overflow-auto {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        overflow: auto;
      }
    `,
  ],
})
export class MessageListComponent implements OnInit {
  notes$: Observable<NoteDto[]>;

  constructor(private replyService: ReplyNoteService) {}

  ngOnInit(): void {
    this.notes$ = this.replyService.getUserNotesList();
  }

  loadMore() {
    console.log('loading...');
  }
}

Without these styles scroll is not visible.

Current behavior: scroll to the bottom, nothing happens.

Expected behavior: scroll to the bottom "loading..." will be logged to the browser console.


Declined
Last Updated: 18 Jul 2023 15:24 by ADMIN
Created by: Ian
Comments: 1
Category: ListView
Type: Feature Request
1
Please add drag and drop between ListView components functionality.
Unplanned
Last Updated: 17 Jul 2023 05:41 by ADMIN
Created by: Holger
Comments: 3
Category: ListView
Type: Feature Request
14
Please add selection functionality to the ListView component.
Declined
Last Updated: 23 Feb 2023 11:09 by ADMIN

Ts Code:

import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';
import { ZonesService } from '../../services/zones.service';
import {PagerSettings,
PagerPosition,
PagerType,PageChangeEvent} from "@progress/kendo-angular-listview";
import { historyExtraParams } from '../../constants/entities.constant';
@Component({
selector: 'app-list-view',
templateUrl: './list-view.component.html',
styleUrls: ['./list-view.component.scss']
})
export class ListViewComponent implements OnInit {
@Input() dataId;
@Output() closeDialog: EventEmitter<boolean> = new EventEmitter();
public data: any[] = [];
public historyExtraParams = historyExtraParams;
public updatedData;
public page = 0;
constructor(private _zonesService: ZonesService) { }
public ngOnInit() {
this.loadMore();
}
public getData(): any {
this._zonesService.getZonesd(this.dataId, this.page).subscribe(
response => {
this.data = response['version_histories'];
// this.formatData(response['version_histories']);
},
error => {
if (error && error.status === 401) {
}
});
}
public getFormattedField(title) {
return title ? title.replace(/_/g, ' ') : '';
}
public loadMore() {
this.page = this.page + 1;
this.getData();
}
public closeConfirmDialog() {
this.closeDialog.emit();
}
}

 

Html code: 

<div style=" overflow-y: auto;
margin-top: 60px;
">
<kendo-listview
[height]="400"
[data]="data"
containerClass="k-d-flex k-flex-col k-flex-nowrap"
(scrollBottom)="loadMore()"
>
<ng-template kendoListViewHeaderTemplate>
<!-- <div class="header">TRENDING ARTICLES THIS WEEK</div> -->
</ng-template>
<ng-template
kendoListViewItemTemplate
let-dataItem="dataItem"
let-isLast="isLast"
>
<div *ngFor="let item of dataItem?.changes | keyvalue">
<div *ngIf="!historyExtraParams.includes(item.key)">
{{isLast}} An event called {{dataItem?.event}} happened and {{getFormattedField(item.key)}} changed from {{item.value[0] || 0}} to {{item.value[1]}},
</div>
</div>
</ng-template>
</kendo-listview>
</div>
Unplanned
Last Updated: 31 Jan 2023 13:46 by Mohit
Created by: Mohit
Comments: 0
Category: ListView
Type: Feature Request
2

Hi Team, 

I would like to be able to export the ListView component to PDF. Currently, this could be achieved by using the PDF Export standalone component: 

https://www.telerik.com/kendo-angular-ui/components/pdf-export/

When it comes to pageable ListView, the PDF Export component should export hidden content, which required defining two ListViews.

Best regards!

Duplicated
Last Updated: 22 Mar 2022 07:39 by ADMIN
Html Code:
<!-- <kendo-dialog title="Version History" (close)="closeConfirmDialog()"
[width]="500" [height]="400" class="delete-entity-popup"> -->
<div style=" overflow-y: auto;
margin-top: 60px;
">
<kendo-listview
[height]="400"
[data]="data"
containerClass="k-d-flex k-flex-col k-flex-nowrap"
(scrollBottom)="loadMore()"
>
<ng-template kendoListViewHeaderTemplate>
<!-- <div class="header">TRENDING ARTICLES THIS WEEK</div> -->
</ng-template>
<ng-template
kendoListViewItemTemplate
let-dataItem="dataItem"
let-isLast="isLast"
>
<div *ngFor="let item of dataItem?.changes | keyvalue">
<div *ngIf="!historyExtraParams.includes(item.key)">
{{isLast}} An event called {{dataItem?.event}} happened and {{getFormattedField(item.key)}} changed from {{item.value[0] || 0}} to {{item.value[1]}},
</div>
</div>
</ng-template>
</kendo-listview>
</div>
<!-- </kendo-dialog> -->



Ts code:
import { Component, Input, OnInit, EventEmitter, Output } from '@angular/core';
import { ZonesService } from '../../services/zones.service';
import {PagerSettings,
PagerPosition,
PagerType,PageChangeEvent} from "@progress/kendo-angular-listview";
import { historyExtraParams } from '../../constants/entities.constant';
@Component({
selector: 'app-list-view',
templateUrl: './list-view.component.html',
styleUrls: ['./list-view.component.scss']
})
export class ListViewComponent implements OnInit {
@Input() dataId;
@Output() closeDialog: EventEmitter<boolean> = new EventEmitter();
public data: any[] = [];
public historyExtraParams = historyExtraParams;
public updatedData;
public page = 0;
constructor(private _zonesService: ZonesService) { }
public ngOnInit() {
this.loadMore();
}
public getData(): any {
this._zonesService.getZonesd(this.dataId, this.page).subscribe(
response => {
this.data = response['version_histories'];
// this.formatData(response['version_histories']);
},
error => {
if (error && error.status === 401) {
}
});
}
public getFormattedField(title) {
return title ? title.replace(/_/g, ' ') : '';
}
public loadMore() {
this.page = this.page + 1;
this.getData();
}
public closeConfirmDialog() {
this.closeDialog.emit();
}
}