ForgeKomponenty
pl

Komponenty

j-Grid

jComponent 20 · jcomponent@20 component Przykład załadowany z jComponent 20
  • Potrzebny system bootstrap

Data-source musi zawierać:

{
    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:

  • filter {Boolean} wyświetla filtr (opcjonalny, domyślnie: true)
  • filterlabel {String} domyślny pojemnik dla wszystkich filtrów (opcjonalny)
  • external {Boolean} jest zewnętrznym źródłem danych (dynamiczne ładowanie danych) (optyczne, domyślnie: false)
  • pluralizepages {String} pluralizacja dla stron (opcjonalnie, domyślnie: # pages,# page,# pages,# pages)
  • pluralizeitems {String} pluralizacja dla elementów (opcjonalne, domyślne: # items,# item,# items,# items)
  • exec {String} link do function(type, filter, sort, page), ocenia się, czy sieć wykonuje niektóre operacje
  • padding {Number} podnoszenie wysokości (opcjonalnie, domyślnie: 0)
  • autosize {Boolean} umożliwia pełną wysokość automatyczną (opcjonalna, domyślna true)
  • boolean {String} wartość do filtracji wartości boolean (opcjonalnie, wstępnie: true|on|yes)
  • pagination {Boolean} wyświetla panel strony (opcjonalnie, domyślnie: false)
  • init {Funkcja} funkcja init np. kolumny przyzwoite
  • checked {Funkcja} jeśli rzędy będą zawierać <input type="checkbox to ta funkcja zostanie oceniona po sprawdzeniu pudełka kontrolnego

Kolumna właściwości:

  • name {String} nazwa pola w obiekcie
  • text {String} etykieta kolumny
  • title {String} w kolumnie narzędzie (opcjonalne)
  • size {Number} szerokość kolumny: 1 mały , 2 Średnia 3 Wielki , 4 bardzo duży (opcjonalny, default) 1)
  • size {String} szerokość kolumny w pikselach, wartość musi zawierać px np. 20px
  • filter {String/Boolean} miejsce dla filtra lub boolean może wyłączyć filtr dla tej kolumny (opcjonalnie)
  • format {String/Number} dla wartości formatowania (string dla daty, number dla liczb)
  • background {String} kolor tła (opcjonalny)
  • align {String} może być center lub right (opcjonalnie, domyślnie: left)
  • template {String} może być szablonem Tangular i model jest całym obiektem kolejki
  • render {String/Function(wartość, kolumna, kolejka)} jest indywidualnym renderowaniem, string jest oceniany jako funkcja strzałki
  • header {String/Function(column)} jest indywidualnym renderowaniem nagłówka, string jest oceniany jako funkcja strzałki
  • sort {Boolean} umożliwia sortowanie (opcjonalne, domyślnie: true)
  • class {String} dodatkowe klasy dla kolumny, na przykład hidden-xs
  • search {Boolean/String} true filtruje wartość według wyniku template lub String może być szablonem Tangular, który będzie używany jako wartość do wyszukiwania

Filtrowanie:

  • numbers: (1) number wyszukuje dokładną liczbę, (2) number / number jest odstępem między liczbami
  • strings: (1) string wyszukuje dokładną łańcuch, (2) string1, string2, string3 jest wielokrotnym kryterium wyszukiwania
  • dates: (1) rok 2017 wyszukuje wszystkie daty w tym roku, (2) 2017-02-12 / 2017-03-13 jest przerwą między datami, (3) 20.12 / 31.12 jest przerwę pomiędzy datami w danym roku

Użyj go z <ui-component name="grid">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.

example.html
<style>
	body{padding:50px;margin:0;background-color:#F0F0F0;font-family:Arial;height:100%;}
	html{height:100%;}
</style>

<ui-component name="grid" path="griddata" config="exec:filtering">
	<script type="text/plain">
		[
			{ name: 'name', text: 'Name', size: 2, render: 'n => n.toUpperCase()', filter: 'Search in name' },
			{ name: 'price', text: 'Price', size: 1, format: 2, filter: 'Search in prices', align: 'right' },
			{ name: 'description', text: 'Description', size: 3, filter: 'Search in description' },
			{ name: 'created', text: 'Created', size: 1, filter: 'Search in dates', format: 'dd.MM.yyyy', align: 'center' }
		]
	</script>
</ui-component>

<script>
	var griddata = { page: 1, count: 18, pages: 3, limit: 6, items: [] };
	var items = griddata.items;

	items.push({ name: '1 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 233, created: new Date().add('-5 days') });
	items.push({ name: '2 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 122, created: new Date().add('-1 year') });
	items.push({ name: '3 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 119, created: new Date().add('-1 month') });
	items.push({ name: '4 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 35.34, created: new Date().add('-14 days') });
	items.push({ name: '5 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 439.33, created: new Date().add('-5 hours') });
	items.push({ name: '6 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 111.12, created: new Date().add('-349 minutes') });

	// Auto-resize
	$(window).on('resize', function() {
		setTimeout2('resize', function() {
			EMIT('resize');
		}, 100);
	});

	function filtering(type, filter, sort, page) {
		console.log(type, filter, sort, page);
	}

</script>