j-DataTable
BETA: Ten element jest ukierunkowany na SPA i listę stron serwera.
- Wsparcie strony
- Potrzebny system
bootstrap - Wsparcie dla sortowania
- wspiera pionowe / horyzontalne skręcanie
- Odpowiedź
- Wsparcie - mody ciemne
Data-source musi zawierać:
{
cols: [{ name: 'id', ... }], // optional, can be defined inline in HTML
items: [{ name: 'Row 1' }, { name: 'Row 2' }, ...] // items
page: 1, // current pages
pages: 30, // count of pages
limit: 5, // items limit per page
count: 150 // count of items in DB
}Konfiguracja:
- Pluralizacja
pluralizepages {String}dla stron (opcjonalna, domyślna:# pages,# page,# pages,# pages) - Pluralizacja
pluralizeitems {String}dla elementów (opcjonalna, domyślna:# items,# item,# items,# items) height {Number/String}Wysokość sieci, wartości wspierane:auto(wstępnie) - Nowyfluid,parentlubNUMBERWysokość lubselectordla jQuery.closest()- NEW
minheight {Number}minimalna wysokość siatki, działa z wysokościąfluidiauto(default:300) - NEW wybór
parent {String}dla opcji wysokościauto(default:window) margin {Number}- najwyższa marża wysokości (opcjonalna, domyślna:0)click {String}link dofunction(row, grid, row_el), jest wykonywany, jeśli użytkownik kliknie kolejkęhighlight {Boolean}w każdym wybranym rzędzie (poclick) zostanie podkreślony (default:false)unhighlight {Boolean}umożliwiaundo highlightingz wybranego rzędu (default:true)checked {String}pathdo zmiennej lub ścieżki dofunction(rows, grid)jest wykonany, jeśli użytkownik wybiera / sprawdza kilka kolejekautoselect {Boolean}umożliwia automatyczne wybór pierwszej kolejności w sieci, wykonujeEXEC(config.click), domyślnie:falseexec {String}link dofunction(type, page, sort)tylko dla operacji z serwera (nie umożliwia to sortowania i filtracji z klienta), wspierane typy:refreshlubpagechanged {String}pathdo zmiennej lub ścieżki dofunction(rows, grid)jest wykonany, jeśli użytkownik zmieni niektóre rzędydblclick {String}jest linkem do metodyfunction(row, grid, row_el), wykonuje się, jeśli użytkownik kliknie dwukrotnie na kolejkęnoborder {Boolean}może wyłączyć granicę wokół sieci (default:false)colwidth {Number}wstępna szerokość dla kolumn (wstępna:150)editable {String}link dofunction(opt)kiedy użytkownik wykonuje edycjęcontextmenu {String}link dofunction(e, grid)kiedy użytkownik podnosi menu kontekstu
Kolumna właściwości:
name {String}- nazwa pola w kolejce obiektutext {String}etykietę kolumny, tekst z.fa fa-homebędzie FontAwesome ikonawidth {Number}szerokość kolumny (opcjonalna, domyślnaconfig.colwidth)align {String}może byćcenterlubright(opcjonalnie, domyślnie:left)template {String}może być szablonem Tangular i model jest całym obiektem kolejkisort {Boolean}umożliwia sortowanie (opcjonalne, domyślne:false)format {String/Number}może być używany do daty i liczby (liczba dziesięcioleci) pola (opcjonalne), na przykładdd.MM.yyyycurrency {String}formatera waluty, po prostu dodać walutęclass {String}opcjonalny, nazwa klasy kolumnyempty {String/Boolean}opcjonalny, może ponownie napisać pustą wartość z wartościami zdefiniowanymi w pustym polu (wartośćtruewykorzystuje---jako wartość domyślną)type {String}opcjonalny, może zawierać typ danych (boolean,datelubnumber) dla polaeditable {Boolean}umożliwia edycję
Metody:
component.redrawrow(row_object/index)redraws rzędu lub NEW: zastępuje +redrawsrow_objectz nowymnew_object_rowcomponent.clear()oczyszcza wszystkie zmianycomponent.select(row)wybierarowmusi być tym samym przedmiotem jak w źródle danychcomponent.rebind(columnsdeclaration)metodą odzwierciedla schemat- NEW:
component.reload()wykonujeconfig.execz bieżącym filtrem i sortowaniem - NEW:
component.empty()empties wszystkie rzędy
Dobrze wiedzieć:
SET('link.to.data', data, 'noscroll')-> typnoscrollzaburza ponownego ustawienia skręcania
Jak rozszerzyć klasę kolejności?
- Spójrz na linię
{{ if active, rozszerza klasę kolejności poprzez dodaniedg-active-class, jeśliactivebędzie ważny
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Użyj go z <ui-component name="datatable">Gdy element nie jest jeszcze ładowany, jComponent Pobierz go po pierwszym użyciu z adresu DEF.fallback (Wydaje się Componentator Autor: Peter Širka Źródło: Componentator Zestaw składników, licencja MIT.
<div style="width:500px;height:400px">
<ui-component name="datatable" path="data" config="highlight:1;exec:paginate;editable:editable;checked:checked;margin:22">
<script type="text/html">
[
{ name: 'name', text: 'Opportunity name', width: 200, sort: 1, editable: 1 },
{ name: 'value', text: 'Value', width: 100, sort: 1, type: 'number', format: 2 },
{ name: 'status', text: 'Status', width: 100, editable: 1 },
{ name: 'owner', text: 'Owner', width: 200 },
{ name: 'newsletter', text: 'Newsletter', width: 100, type: 'boolean' },
{ name: 'date', text: 'Date', width: 200, sort: 1, type: 'date', format: 'yyyy-MM-dd' }
]
</script>
</ui-component>
</div>
<script>
function checked(rows) {
console.log(rows);
}
function editable(opt) {
// opt.row
// opt.col
// opt.value
// opt.next(NEW_VALUE);
opt.next(opt.value + ' (modified)');
}
function paginate(type, page, sort) {
console.log('Page:', page, 'sort:', sort);
}
var data = {};
data.items = [];
data.pages = 53;
data.page = 3;
// data.cols.push({ name: 'name', text: 'Opportunity name', width: 200, sort: true });
// data.cols.push({ name: 'value', text: 'Value', width: 100, sort: true });
// data.cols.push({ name: 'status', text: 'Status', width: 100 });
// data.cols.push({ name: 'owner', text: 'Owner', width: 200 });
// data.cols.push({ name: 'date', text: 'Date', width: 200, sort: true });
for (var i = 0; i < 50; i++)
data.items.push({ name: GUID(20), value: Math.random() * 1000 >> 0, status: GUID(10), owner: 'Peter Širka', newsletter: i % 3 === 0, date: NOW });
</script>