j-DataGrid
Ta sieć została stworzona dla aplikacji pojedynczej strony i aplikacji przedsiębiorstw.
- Potrzebny system
bootstrap - Możesz zrealizować więcej niż 30 000 kolejek bez żadnych problemów
- Wsparcie dla kolumny drag&drop
- Wsparcie dla sortowania
- wspiera odtwarzanie kolumn
- wspiera pionowe / horyzontalne skręcanie
- Wsparcie filtrów
- Wsparcie dla checkboxes
- Niezależne skrzyniarki na OS
- Odpowiedź
- Wsparcie - mody ciemne
- IMPORTANT Opcje kolumny filtry wymagają składnika
j-Directory
To-do:
- Wielogodność
- Odtwarzanie kolumn do urządzeń dotykowych
- Znowocześnianie kolumn dla urządzeń dotykowych
Data-source musi zawierać:
{
schema: 'schema_id', // NEW: optional, DataGrid supports multiple schemas (it means: multiple declaration of columns)
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
}lub surowy Array, ale nie można używać stron i zewnętrznych filtrów:
[{ name: 'Row 1' }, { name: 'Row 2' }];Konfiguracja:
filterlabel {String}- domyślny pojemnik dla wszystkich filtrów (opcjonalny)rememberfilter {Boolean}z prawdziwym przypomina filtry dla każdego schematu (default:true)schema {String}standardowy schemat (default:default)- 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,parentlubparent1,parent2) lubNUMBERWysokość lubselectordla jQuery.closest()minheight {Number}minimalna wysokość siatki, praca zfluidiautowysokość (default:200)- Wybór
parent {String}dla opcji wysokościauto(default:window) margin {Number}- najwyższa marża wysokości (opcjonalna, domyślna:0)boolean {String}wartość do filtracji wartości boolean (opcjonalnie, wstępnie:true|on|yes)resize {Boolean}umożliwia odtwarzanie kolumn (opcjonalne, domyślnie:true)reorder {Boolean}umożliwia ponowne zamówienie kolumn (opcjonalne, domyślnie:true)sorting {Boolean}umożliwia sortowanie (opcjonalne, standardowetrue)remember {Boolean}przypomina kolumny ponownego zamówienia i odtwarzania (opcjonalne, domyślnetrue)checkbox {Boolean}umożliwia kontrolęcolwidth {Number}standardowy szerokość kolumny w pikselach (opcjonalny, standardowy150)rowheight {Number}standardowy poziom wysokości w pikselach (opcjonalny, standardowy:24) + zależy od CSSalignheader {String/Number}Align dla headerrightlub2) lubcenterlub1Opcjonalne i nieprawidłowe:left)alignfilter {String/Number}Align dla filtra wejściarightlub2) lubcenterlub1Opcjonalne i nieprawidłowe:left)align {String/Number}Align dla wartości kolumnyrightlub2) lubcenterlub1Opcjonalne i nieprawidłowe:left)click {String}link do ścieżki lubfunction(row, grid, row_el), rekord zostanie przypisany/wykonany, jeśli użytkownik kliknie na kolejkęclickid {String}nazwa identyfikatorów/właściwości do odtwarzania wstecz (dla poprzedniego podniesienia kolejności), domyślnie:idhighlight {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:falselimit {Number}limit klastru, wstępne:80numbering {Boolean}, opcjonalny standardfalseallowtitles {Boolean}, umożliwia tytuły dla wszystkich wartości kolejnych, opcjonalny standardfalse- Połączenie
button {String}dofunction(btn_name, row, btn_element, event, name)jest wykonane, jeśli użytkownik kliknie na przycisk __ w kolejce exec {String}link dofunction(type, filter, sort, page)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ędychange {String/Boolean}boolean umożliwia wewnętrzne edycje lub strona musi zawieraćpathdo zmiennej lub ścieżka dofunction(meta, next(meta))jest wykonywana, jeśli użytkownik dwukrotnie kliknie na kolumnę (metamoże byćnulljeśli sieć jest odświeżona) +next(null)zastępuje poprzednią treść ponowniecolumns {String}– droga do definicjicolumns {Array}dblclick {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)clusterize {Boolean}może wyłączyć skręcanie zbiorowe (default:true)contextmenu {String}link dofunction(e, grid)kiedy użytkownik podnosi menu kontekstuautoformat {Boolean}umożliwia automatyczne formaty, takie jakemail,phoneinumber(default:true)controls {Boolean}umożliwia kontrolę określoną wcolumns(default:true)hfunc {String}jest linkem do metodyfunction(el), jest wykonywany, jeśli użytkownik kliknie ikonę dodaną do bardzo pierwszego rzędu nagłówków. usefull do integracji innego składnika z DataGrid. np. j-filter- Ikony
hfuncicon {String}hfunc np. domowe, cog itp. pagination {Boolean}umożliwia/nie umożliwia przeglądanie stron (default:true)config.execzostanie wykonany, jeśli pasek jest na końcu, a można go użyć jako surową odpowiedźarrayrzęs
ovalue {String}klucz domyślny do uzyskaniavaluezcolumn.options(domyślne:id)otext {String}klucz domyślny do uzyskaniatextzcolumn.options(domyślne:name)
Kolumna właściwości:
name {String}- nazwa pola w kolejce obiektutext {String}etykietę kolumny, tekst z.ti ti-homebędzie wyświetlać ikonę Totaltitle {String}- typ narzędzi kolumny (opcjonalny)width {Number}szerokość kolumny (opcjonalna, domyślnaconfig.colwidth)filter {String/Boolean}miejsce dla filtra lubbooleanmoże wyłączyć filtr dla tej kolumny (opcjonalnie)filtervalue {Object}opcjonalny, wartość wstępnie zdefiniowana (default:undefined)filtertype {Number/String},1zablokuje wyszukiwanie inteligentne (default:0- oznacza to, że wyszukiwarka inteligentna jest włączona)align {String}może byćcenterlubright(opcjonalnie, domyślnie:left)template {String}może być szablonem Tangular i model jest całym obiektem kolejkisorting {Boolean}umożliwia sortowanie (opcjonalne, domyślne:true)search {Boolean/String}truefiltruje wartość według wynikutemplatelubStringmoże być szablonem Tangular, który będzie używany jako wartość do wyszukiwaniaformat {String/Number}może być używany do daty i liczby (liczba dziesięcioleci) pola (opcjonalne), na przykładdd.MM.yyyyhide {Boolean}ukrywa kolumnęlistcolumn {Boolean}:prawdziwe, fałszywe do usuwania kolumny z listy kolumnhidden {String}jako strzałka funkcjacolumn => true-> kolumna będzie ukryta (np. dla ograniczenia użytkownika)options {Object Array}opcjonalny, filtracja dostosowana np.[{ text: 'yes', value: true }, { text: 'no', value: false }]o {String}r link do źródła danychotext {String}opcjonalny, klucz do polatextwoptions, domyślnieconfig.otextovalue {String}opcjonalny, klucz do polavaluewoptions, domyślnieconfig.ovaluebuttonapply {String}opcjonalny, etykieta dla przyciskuApplyw kolumnach, domyślnie:Applyclass {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ą)min {Number}edytowane tylko min. wartośćmax {Number}odpowiedni tylko max. wartośćrequired {Boolean}- tylko edytowanedirsearch {String/Boolean}miejsce do wyszukiwaniaj-Directory, boolean zfalsebędzie wyłączyć wyszukiwanietype {String}opcjonalny, może zawierać typ danych (string,boolean,date,number,email,phoneluburl) dla polaeditable {Boolean}umożliwia edycjęcurrency {String}nazwa waluty (musi być zdefiniowana wDEF.currencies)editable {String}Droga do dostępu do edycjifunction(meta)Ważne jest:meta.next(new_value)lubmeta.cancel()colorize {Boolean}umożliwia kolorowanie wartościmonospace {Boolean}umożliwia typ czcionki monospace- NEW
raw {Boolean}umożliwia/nie pozwala na ucieczkę HTML w filtrach kolumn (default:false) - NEW
pair {Boolean}umożliwia/zniesie wartość automatyczną w połączeniu z konfiguracjąoptions(default:false)
Kontrola przepływu (NOW):
- Można go zdefiniować jako typ kolumny
controls - powinny być zdefiniowane kolumny
template(Tangular,rowjest modelem dla Tangular dla każdego rzędu) - Zobacz przykład
- Przycisk wydarzenia
clickjest przechowywany doconfig.button
Filtrowanie:
numbers: (1)numberwyszukuje dokładną liczbę, (2)number - numberjest odstępem między liczbamistrings: (1)stringwyszukuje dokładną łańcuch, (2)string1, string2, string3jest wielokrotnym kryterium wyszukiwaniadates1) rok2017Wszelkie daty w tym roku (2)2017-02-12 - 2017-03-13--02.12.2017 - 13.03.2017jest okres między datami, (3)12-20 - 12-31--20.12 - 31.12Rozkład między datami w bieżącym roku i (4)2017-01 - 2018-05--01.2017 - 05.2018lub (5)-5 days---1 week---10 years
Metody:
component.redraw([reselect_again])może odtwarzać kolejki ponownie (tylko w przypadku modyfikacji, jeśli usuniesz pewne kolejki, które musisz zaktualizować cały model)component.resetfilter()może ustawić filtrcomponent.exportrows(page_from or true from the current page, pages_count, callback(rows, internal_options), [reset_to_page or true for the current page])może eksportować linie z renderowaniem ze strony serweracomponent.appendrow(row_object, [scrolldown], [prepend])wskazywa i rzucacomponent.redrawrow(row_object, [new_object_row])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.editcolumn(row_index, col_index)wykonujeconfig.changewewnętrznie (tylko do zaawansowanego użytku)component.applyfilter(obj)może zastosować filtrację{ name: 'Peter', age: '20 - 50' }component.resetcolumns()powtórza kolumnycomponent.readfilter()zwraca aktualny filtrcomponent.rebind(schemaname__or__columnsdeclaration)metodą odzwierciedla schematcomponent.reload()wykonujeconfig.execz bieżącym filtrem i sortowaniemcomponent.empty()Empty wszystkie rzędycomponent.redrawcolumns()odświeża kolumny bez ich ponownego ustawienia- NEW:
component.schema(name)zmienia schemat i odświeża dane
Właściwości:
component.metazwraca wewnętrzne informacje o filtrach, kolumnach i rzędach
Dobrze wiedzieć:
NULL('link.to.data')ocenyconfig.execSET('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 ...
]Wiele schematów:
<ui-component name="datagrid" path="obj">
<script type="text/plain" data-id="SCHEMA_A">
[
{ name: 'name', text: 'Name', width: 200 },
// ...
]
</script>
<script type="text/plain" data-id="SCHEMA_B">
[
{ name: 'price', text: 'Price', width: 100 },
// ...
]
</script>
</ui-component>
<script>
// Usage
var obj = {};
obj.schema = 'SCHEMA_A';
obj.items = [];
// Changing of schema
setTimeout(function() {
obj.schema = 'SCHEMA_B';
obj.items = [];
UPD('obj');
}, 5000);
</script>Użyj go z <ui-component name="datagrid">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.
<ui-component name="LAZY directory"></ui-component>
<ui-component name="datagrid" path="items" config="margin:22;button:clicked">
<script type="text/plain">
[
{ name: 'name', text: 'Name', width: 200 },
{ name: 'price', text: 'Price', align: 1, alignfilter: 1 },
{ name: 'published', text: 'Public', align: 1, options: [{ name: 'yes', id: true }, { name: 'no', id: false }], type: 'boolean' },
{ name: 'description', text: 'Description', filter: 'Search in description' },
{ name: 'created', text: 'Created', template: '{{ created | format(\'dd.MM.yyyy\') }}', align: 2, alignfilter: 2, alignheader: 2 },
{ type: 'controls', template: '<button name="show"><i class="ti ti-search"></i><span>Show</span></button><button name="edit"><i class="ti ti-pencil"></i></button><button name="remove"><i class="ti ti-trash red"></i></button>' }
]
</script>
</ui-component>
<script>
var items = [];
for (var i = 1; i < 90; i++)
items.push({ name: '{0} Lorem ipsum dolor'.format(i), published: i % 5 !== 0, description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: i + 100, created: new Date().add('-5 days') });
function clicked(btnname, row, button, e) {
console.log(btnname, row);
}
</script>