1.0.3 • Published 6 years ago

constructor.datatables.net v1.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

DataTable.net configurator

Methods

api: DataTables.Api;

Link for DataTables api. (Allowed only after init).

toolbars: IToolbars;

Toolbars configurator.

buttons: IButtons;

Buttons configurator.

header: IHeader;

Columns header configurator.

toolbar: IToolbarConstructor;

Control elements configurator.

ajax: IAjax;

Load data from server configurator.

isInited(): boolean;

Is dataTable inted.

set(options: IDataTableOptions): IDataTable;

Set DataTables Settings

init(): IDataTable;

Init table

destroy(): IDataTable;

Destroy table

column(data?: IColumnOptions): IColumns;

Create new column configurator

columns(datas: IColumnOptions[]): IDataTable;

Add columns by data.

order(column: number, order: ORDER): IDataTable;

Set order for columns. Equals DataTables Setting "order".

language(value: IDataTableLanguage): IDataTable;

Language settings. Equals DataTables Setting "language".

data(value: any[]): IDataTable;

Set dataTable data for rows. Update data for inited table.

on(name: string, ...args: any[]): IDataTable;

Add event for table.

paging(value: boolean): IDataTable;

Enable paging control. Equals DataTable Setting "paging".

searching(value: boolean): IDataTable;

Enable searching control. Equals DataTable Setting "searching".

info(value: boolean): IDataTable;

Enable info control. Equals DataTable Setting "info".

autoWidth(value: boolean): IDataTable;

Enable auto width for table. Equals DataTable Setting "autoWidth".

lengthChange(value: boolean): IDataTable;

Enable page size control. Equals DataTable Setting "lengthChange".

processing(value: boolean): IDataTable;

Enable loading indicator. Equals DataTable Setting "processing".

ordering(value: boolean): IDataTable;

Enable ordering for columns. Equals DataTable Setting "ordering".

pageLength(value: number): IDataTable;

Set page size. Equals DataTable Setting "pageLength".

startFrom(value: number): IDataTable;

Set start element for paging. Equals DataTable Setting "displayStart".

columnDefs(value: any): IDataTable;

Def column data. Equals DataTable Setting "columnDefs".

Examples

1. Basic initialization

import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .data([])
    .init();

2. Columns settings

import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .column({ title: '#1', width: '100px', data: null })
       .and({ title: '#3', ordering: false, data: 'data_name' })
       .and({ title: '#4', render: (data) => data.name, data: null })
       .add()
    .set({
        order: [[1, 'desc']],
    })
    .init();

or

import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .columns([
        { title: '#1', width: '100px', data: null },
        { title: '#3', ordering: false, data: 'data_name' },
        { title: '#4', render: (data) => data.name, data: null },
    ])
    .set({
        order: [[1, 'desc']],
    })
    .init();

3. Control elements

3.2 Disable basic controls
import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .paging(false)
    .searching(false)
    .info(false)
    .autoWidth(false)
    .init();

or

import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .set({
        paging: false,
        searching: false,
        info: false,
        autoWidth: false,
    })
    .init();
3.2 Add basic controls to position
import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .toolbar
        .bottom.right.afterControl.control.processing
        .and.top.left.onControl.control.info
        .add()
    .init();

Basic controls list

    paging
    searching
    info
    processing
    lengthChange

Positions list

    top
    bottom

    left
    right

    beforeControl
    onControl
    afterControl
3.3 Create custom controls
import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .toolbar.top.left.beforeControl
        .html(`<div>
            <div class="js-a btn btn-default">A</div>
            <div class="js-b btn btn-default">B</div>
        </div>`)
        .on('click', '.js-a', () => { alert('A'); })
        .on('click', '.js-b', () => { alert('B'); })
        .add()
    .init();

4. Ajax loading

4.1 Initial loading
import { DataTable } from 'constructor.datatables.net';

DataTable.create($('table'))
    .ajax.url('/get/data/url').loading()
    .init();
4.2 Reload data from server
import { DataTable } from 'constructor.datatables.net';

    DataTable.create($('table'))
        .ajax.url('/get/data/url')
            .params((data, settings) => {
                return {
                    get: 1,
                    data: 2,
                    params: 3,
                };
            })
            .filter((response) => {
                return response.
                    total(response.serverResponse.data.total || 0).
                    stringify();
            })
            .success((response) => {
                return []; // Columns data
            })
            .always()
        .init();

5. Custom sorting

import { DataTable, DataTableSorting } from 'constructor.datatables.net';

DataTableSorting.create('string-length')
    .pre((a) => a.length)
    .asc((a, b) => a > b)
    .desc((a, b) => b < a)
    .add();

DataTable.create($('table'))
    .columns([
        { title: '#1', data: 'string', type: 'string-length' },
    ])
    .init();