j-DataGrid
Esta cuadrícula fue creada para aplicaciones de una sola página y aplicaciones empresariales.
- se necesita sistema de rejilla
bootstrap - puedes renderizar más de 30 000 filas sin ningún problema
- admite columnas de arrastrar y soltar
- admite clasificación
- admite el cambio de tamaño de las columnas
- admite desplazamiento vertical/horizontal
- admite filtros
- admite casillas de verificación
- barras de desplazamiento personalizadas independientes del sistema operativo
- receptivo
- admite modo oscuro
- El filtro de opciones de columna IMPORTANTE necesita el componente
j-Directory
PARA HACER:
- multiclasificación
- cambiar el tamaño de las columnas para dispositivos táctiles
- reordenar columnas para dispositivos táctiles
Fuente de datos debe contener:
{
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
}o Array sin formato, pero no puedes usar paginación ni filtros externos:
[{ name: 'Row 1' }, { name: 'Row 2' }];Configuración:
filterlabel {String}un marcador de posición predeterminado para todos los filtros (opcional)rememberfilter {Boolean}con verdadero recuerda los filtros para cada esquema (predeterminado:true)schema {String}un esquema predeterminado (predeterminado:default)pluralizepages {String}pluralización de páginas (opcional, predeterminado:# pages,# page,# pages,# pages)pluralizeitems {String}pluralización para elementos (opcional, predeterminado:# items,# item,# items,# items)height {Number/String}altura de la cuadrícula, valores admitidos:auto(predeterminado), NEWfluid,parent(oparent1,parent2) oNUMBERcomo altura oselectorpara jQuery.más cercano()minheight {Number}altura mínima de la rejilla, funciona con alturafluidyauto(predeterminado:200)- Selector
parent {String}para la opción de alturaauto(predeterminado:window) margin {Number}un margen superior para la altura (opcional, predeterminado:0)boolean {String}valores para filtrar valores booleanos (opcional, predeterminado:true|on|yes)resize {Boolean}permite cambiar el tamaño de las columnas (opcional, predeterminado:true)reorder {Boolean}permite reordenar las columnas (opcional, predeterminado:true)sorting {Boolean}habilita la clasificación (opcional, predeterminadotrue)remember {Boolean}recuerda reordenar y cambiar el tamaño de las columnas (opcional, predeterminadotrue)checkbox {Boolean}habilita casillas de verificacióncolwidth {Number}un ancho de columna predeterminado en píxeles (opcional, predeterminado150)rowheight {Number}una altura de fila predeterminada en píxeles (opcional, predeterminado:24) + depende de CSSalignheader {String/Number}se alinea para el encabezadoright(o2) ocenter(o1) (opcional, predeterminado:left)alignfilter {String/Number}se alinea para la entrada del filtroright(o2) ocenter(o1) (opcional, predeterminado:left)align {String/Number}se alinea para un valor de columnaright(o2) ocenter(o1) (opcional, predeterminado:left)click {String}un enlace a una ruta ofunction(row, grid, row_el), se asignará/ejecutará un registro si el usuario hace clic en una filaclickid {String}un identificador/nombre de propiedad para redibujar hacia atrás (para resaltar la fila anterior), predeterminado:idhighlight {Boolean}cada fila seleccionada (después declick) se resaltará (predeterminado:false)unhighlight {Boolean}habilitaundo highlightingde la fila seleccionada (predeterminado:true)checked {String}patha una variable o ruta afunction(rows, grid)se ejecuta si el usuario seleccionó/marcó algunas filasautoselect {Boolean}habilita la selección automática de la primera fila en la cuadrícula, realizaEXEC(config.click), predeterminado:falselimit {Number}un límite de clúster, predeterminado:80numbering {Boolean}, valor predeterminado opcionalfalseallowtitles {Boolean}, habilita títulos para todos los valores de fila, valor predeterminado opcionalfalsebutton {String}se ejecuta un enlace afunction(btn_name, row, btn_element, event, name)si el usuario hace clic en un botón en la filaexec {String}un enlace afunction(type, filter, sort, page)solo para operaciones del lado del servidor (deshabilita la clasificación y el filtrado del lado del cliente), tipos admitidos:refreshopagechanged {String}patha una variable o ruta afunction(rows, grid)se ejecuta si el usuario cambió algunas filas
change {String/Boolean}booleano permite la edición interna o la cadena debe contener unpatha una variable o la ruta afunction(meta, next(meta))se ejecuta si el usuario hace doble clic en una columna (metapuede sernullsi se actualiza la cuadrícula) +next(null)reemplaza el contenido anterior nuevamentecolumns {String}un camino hacia la definición decolumns {Array}dblclick {String}un enlace al métodofunction(row, grid, row_el), se ejecuta si el usuario hace doble clic en una filanoborder {Boolean}puede desactivar un borde alrededor de la cuadrícula (predeterminado:false)clusterize {Boolean}puede desactivar el desplazamiento agrupado (predeterminado:true)contextmenu {String}un enlace afunction(e, grid)cuando el usuario abre el menú contextualautoformat {Boolean}habilita tipos de formato automático comoemail,phoneynumber(predeterminado:true)controls {Boolean}habilita los controles definidos encolumns(predeterminado:true)hfunc {String}un enlace al métodofunction(el), se ejecuta si el usuario hace clic en el icono agregado a la primera fila del encabezado. Útil para integrar otros componentes con DataGrid. p.ej. filtro jhfuncicon {String}icono hfunc, p. hogar, engranaje, etc.pagination {Boolean}habilita/deshabilita la paginación (predeterminado:true)config.execse ejecutará si la barra de desplazamiento está al final, y puede usar como respuesta sin formatoarrayde filas
ovalue {String}una clave predeterminada para obtenervaluedecolumn.options(predeterminada:id)otext {String}una clave predeterminada para obtenertextdecolumn.options(predeterminada:name)
Propiedades de la columna:
name {String}un nombre de campo en el objeto de filatext {String}una etiqueta de columna, el texto con.ti ti-homerepresentará el ícono Totaltitle {String}una información sobre herramientas de columna (opcional)width {Number}un ancho de columna (opcional, predeterminadoconfig.colwidth)filter {String/Boolean}un marcador de posición para el filtro obooleanpuede desactivar el filtro para esta columna (opcional)filtervalue {Object}opcional, un valor de filtro predefinido (predeterminado:undefined)filtertype {Number/String},1deshabilita la búsqueda inteligente (predeterminado:0- significa búsqueda inteligente habilitada)align {String}puede sercenteroright(opcional, predeterminado:left)template {String}puede ser una plantilla Tangular y el modelo es el objeto completo de la fila.sorting {Boolean}habilita la clasificación (opcional, predeterminado:true)search {Boolean/String}truefiltrará un valor según el resultadotemplateoStringpuede ser una plantilla Tangular que se utilizará como valor para la búsqueda.format {String/Number}se puede utilizar para el campo de fecha y números (recuento de decimales) (opcional), p.dd.MM.yyyyhide {Boolean}oculta una columnalistcolumn {Boolean}valor predeterminado: verdadero, falso para eliminar una columna de la lista de columnashidden {String}como función de flechacolumn => true--> la columna estará oculta (por ejemplo, para restringir usuarios)options {Object Array}opcional, un filtro personalizado, por ejemplo[{ text: 'yes', value: true }, { text: 'no', value: false }]o {String}r enlace a la fuente de datosotext {String}opcional, una clave para el campotextenoptions, valor predeterminadoconfig.otextovalue {String}opcional, una clave para el campovalueenoptions, valor predeterminadoconfig.ovaluebuttonapply {String}opcional, una etiqueta para el botónApplyen columnas, predeterminado:Applyclass {String}opcional, un nombre de clase de columna personalizadoempty {String/Boolean}opcional, puede reescribir el valor vacío con el valor definido en el campo vacío (el valortrueusa---como valor predeterminado)min {Number}solo editable al min. valor numéricomax {Number}solo editable un máx. valor numéricorequired {Boolean}solo editabledirsearch {String/Boolean}un marcador de posición para la búsquedaj-Directory, el valor booleano confalsedeshabilitará la búsquedatype {String}opcional, puede contener un tipo de datos (string,boolean,date,number,email,phoneourl) para el campoeditable {Boolean}permite editarcurrency {String}un nombre de moneda (debe definirse enDEF.currencies)editable {String}Una ruta afunction(meta)editable y personalizado, importante:meta.next(new_value)ometa.cancel()colorize {Boolean}permite colorear el valormonospace {Boolean}habilita el tipo de fuente monoespaciado- NEW
raw {Boolean}habilita/deshabilita el escape HTML en los filtros de columna (predeterminado:false) - NEW
pair {Boolean}habilita/deshabilita el emparejamiento automático de valores con la configuraciónoptions(predeterminado:false)
Controles de fila (NUEVO):
- se puede definir como tipo de columna
controls - debe definirse la columna
template(Tangular,rowes un modelo para Tangular para cada fila) - mira el ejemplo
- El evento del botón
clickse captura enconfig.button.
Filtrado:
numbers: (1)numberbusca un número exacto, (2)number - numberes un intervalo entre númerosstrings: (1)stringbusca una cadena exacta, (2)string1, string2, string3es un criterio de búsqueda múltipledates: (1) año2017busca todas las fechas de este año, (2)2017-02-12 - 2017-03-13--02.12.2017 - 13.03.2017es un intervalo entre fechas, (3)12-20 - 12-31--20.12 - 31.12un intervalo entre fechas del año actual ir (4)2017-01 - 2018-05--01.2017 - 05.2018o (5)-5 days---1 week---10 years
Métodos:
component.redraw([reselect_again])puede volver a dibujar filas (solo para modificaciones, si elimina alguna fila necesita actualizar todo el modelo)component.resetfilter()puede restablecer un filtrocomponent.exportrows(page_from or true from the current page, pages_count, callback(rows, internal_options), [reset_to_page or true for the current page])puede exportar filas con renderizado del lado del servidorcomponent.appendrow(row_object, [scrolldown], [prepend])agrega y renderiza la filacomponent.redrawrow(row_object, [new_object_row])vuelve a dibujar la fila o NEW: reemplaza+redibujarow_objectcon un nuevonew_object_rowcomponent.clear()borra todos los cambioscomponent.select(row)seleccionarowdebe ser el mismo objeto que en la fuente de datoscomponent.editcolumn(row_index, col_index)ejecutaconfig.changeinternamente (solo para uso avanzado)component.applyfilter(obj)puede aplicar un filtro personalizado{ name: 'Peter', age: '20 - 50' }component.resetcolumns()restablece columnascomponent.readfilter()devuelve un filtro actualcomponent.rebind(schemaname__or__columnsdeclaration)el método vuelve a vincular el esquemacomponent.reload()ejecutaconfig.execcon el filtro y clasificación actualescomponent.empty()vacía todas las filascomponent.redrawcolumns()volver a dibujar columnas sin restablecerlas- NUEVO:
component.schema(name)cambia un esquema y actualiza datos
Propiedades:
component.metadevuelve metainformación interna sobre filtros, columnas y filas.
Es bueno saberlo:
NULL('link.to.data')evalúaconfig.execSET('link.to.data', data, 'noscroll')--> El tiponoscrolldesactiva el reinicio del desplazamiento.
¿Cómo extender una clase de fila?
- mire la línea
{{ if active }}, extiende una clase de fila agregandodg-active-classsiactiveserá válida
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Múltiples esquemas:
<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>Úselo con <ui-component name="datagrid">. Cuando el componente aún no está cargado, jComponent lo descarga en el primer uso desde la dirección en DEF.fallback (el CDN Componentator de forma predeterminada). Autor: Peter Širka. Fuente: repositorio de componentes Componentator, licencia 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>