#82 datatable sorting improvements

This commit is contained in:
Denys Vuika 2016-06-02 14:21:41 +01:00
parent 831bc9eb7d
commit a60abb2e20
2 changed files with 10 additions and 6 deletions

View File

@ -50,14 +50,15 @@ export class DataTableDemoComponent {
reset() {
this.data = new ObjectDataTableAdapter(
[
{id: 1, name: 'Name 1', createdBy: this._createdBy, icon: 'material-icons://folder_open'},
{id: 2, name: 'Name 2', createdBy: this._createdBy, icon: 'material-icons://accessibility'},
{id: 3, name: 'Name 3', createdBy: this._createdBy, icon: 'material-icons://alarm'},
{id: 4, name: 'Image 1', createdBy: this._createdBy, icon: this._imageUrl}
{id: 1, name: 'Name 1', createdOn: new Date(2016, 6, 2, 15, 8, 1), createdBy: this._createdBy, icon: 'material-icons://folder_open'},
{id: 2, name: 'Name 2', createdOn: new Date(2016, 6, 2, 15, 8, 2), createdBy: this._createdBy, icon: 'material-icons://accessibility'},
{id: 3, name: 'Name 3', createdOn: new Date(2016, 6, 2, 15, 8, 3), createdBy: this._createdBy, icon: 'material-icons://alarm'},
{id: 4, name: 'Image 1', createdOn: new Date(2016, 6, 2, 15, 8, 4), createdBy: this._createdBy, icon: this._imageUrl}
],
[
{type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail'},
{type: 'text', key: 'id', title: 'Id', sortable: true},
{type: 'text', key: 'createdOn', title: 'Created On', sortable: true},
{type: 'text', key: 'name', title: 'Name', cssClass: 'full-width name-column', sortable: true},
{type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true}
]

View File

@ -80,8 +80,11 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
if (sorting && sorting.key) {
this._rows.sort((a: DataRow, b: DataRow) => {
let left = a.getValue(sorting.key).toString();
let right = b.getValue(sorting.key).toString();
let left = a.getValue(sorting.key);
left = (left instanceof Date) ? left.valueOf().toString() : left.toString();
let right = b.getValue(sorting.key);
right = (right instanceof Date) ? right.valueOf().toString() : right.toString();
return sorting.direction === 'asc'
? left.localeCompare(right)