Questo Componente, permette di configurare l'elemento grafico che rappresenterà il singolo profilo di DocsMarshal, ripetuto a partire da una sorgente dati configurata.
Il seguente codice mostra come costruire il componente passandogli dei parametri ed ottenerne l'istanza per invocare successivamente dei metodi;
<div id="container"></div> <script> // costruisco il repeater $('#container').dmRepeater({ ...oggetto contenente i parametri... }); // ottengo l'istanza del componente let instance = $('#container').dmRepeater('instance'); ... // in un secondo momento, ad esempio rispondendo ad un evento, chiamo un metodo del componente instance.refresh(); </script>
Se abilitato, header e footer del Repeater rimarranno fissi e sempre visibili nel loro posto, verrà applicato lo scorrimento (scrollView) al contenuto.
Nota: Per funzionare correttamente il Repeater deve avere un'altezza definita (esempio 50vh)
Il componente renderizzerà il proprio contenuto in sezioni, dinamicamente in base allo scorrimento. Questa opzione permette di velocizzare significativamente i tempi di visualizzazione.
Nota: Per funzionare correttamente il Repeater deve avere un'altezza definita (esempio 50vh) e che la proprietà 'applyScrollViewForContent' sia abilitata.
Se 'virtualScrollingEnabled' è abilitato, indica il numero di elementi del Repeater da disegnare per ogni sezione. Scorrendo verso la fine del Repeater, verrà aggiunta una nuova sezione all'esistente.
Contiene tutte le informazioni che il componente utilizzerà per effettuare la ricerca in DocsMarshal
Contiene tutte le informazioni che il componente utilizzerà per costruire il suo layout
//Repeater con 2 colonne di elementi, a 10px di distanza layout: { display: "grid", gridTemplateColumns: 2, gap: "10px", }
Permette di definire un tempo di refresh automatico dei dati
Indica la struttura che il componente deve utilizzare per visualizzare graficamente ogni singolo elemento (profilo).
Chiavi HTML:
Nota: in caso di utilizzo del Repeater all'interno di ambienti esportabili con il Resenter, consigliamo l'utilizzo della funzione 'getFieldValueByDbFieldName' per i campi aggiuntivi, in quanto gli ID verranno tradotti automaticamente
tileTemplate: ` <div> <span>Valore campo: <D: {C1} :></span> </div> `Esempio JS:
tileTemplate: function(e) { return $("<div>").append( $("<span>").text("Valore campo: " + e.getFieldValueByDbFieldName('C1')) ) }
Indica il template da utilizzare quando la ricerca non produce risultati.
Esempio HTML:
<div> <span>Nessun dato</span> </div>
Contiene le informazioni riguardo l'header toolbar
{ widget: "dxButton", //tipologia di componente location: 'after', //posizione options: { text: "Button Text", onClick: function (e) { //todo } } }
Permette di configurare su quali campi effettuare dei filtri client-side.
Il filtro è applicabile dall'elemento di ricerca ('search'), oppure tramite il metodo 'filter' del componente.
Permette di definire delle operazioni che verranno eseguite in seguito ad eventi sugli elementi del Repeater.
Ad esempio, l'azione di apertura di una maschera di aggiornamento di profilo al click di un elemento.
Le azioni supportate sono:
{ "name": "dmProfileView", //nome della action da utilizzare "event": "tileClick", //evento del Repeater per il quale scatenare l'azione "options": { //eventuali opzioni dell'azione "idMask": "9fceb20b-4acd-4ce2-ac12-5e590f622e69", "popupOptions": { "width": "80%", "height": "80%", "title": "test" } } }
Contiene le informazioni riguardo il raggruppamento dei dati
groupHeaderTemplate: function(e) { return $("<div>").addClass("testclass").append( $("<h3>").text("" + e.title + " / Somma: " + e.getItemsCount() + ""), ); }
Permette di filtrare client-side il Repeater, a differenza del metodo 'applySearchText' che permette di filtrare sui campi definiti nelle filterOptions, questa implementazione accetta una funzione di callback che verrà richiamata per ogni profilo.
Esempio:
let profiliRimasti = repeaterInstance.applyProfilesFilter(function(profile){ profile.getFieldValueByExternalId('Importo', 0) > 0 })
Evento scatenato al cambio di selezione di elementi del Repeater.
L'evento mette a disposizione un parametro contenente le informazioni dei profili selezionati.
repeaterInstance.on('profileSelectionChanged', function(e){ console.log(e); })
Evento scatenato al click di un elemento del Repeater.
L'evento mette a disposizione un parametro contenente le informazioni del profilo associato all'elemento cliccato.
repeaterInstance.on('tileClick', function(e){ console.log(e); })
Evento scatenato al doppio click di un elemento del Repeater.
L'evento mette a disposizione un parametro contenente le informazioni del profilo associato all'elemento cliccato.
repeaterInstance.on('tileCblClick', function(e){ console.log(e); })