j-DataTable
BETA: Este componente é direcionado para a SPA e lista de servidores.
- Apoiando a página
- O sistema de rede
bootstrap - Apoio à Sorte
- Suporte ao escorregamento vertical/horizontal
- Responder
- Apresentação - Modo escuro
__Data-Source_ precisa de conter:
{
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
}Configuração:
- Pluralização
pluralizepages {String}para páginas (opcional, padrão:# pages,# page,# pages,# pages) - Pluralização
pluralizeitems {String}para itens (opcional, padrão:# items,# item,# items,# items) height {Number/String}Alteração da rede, valores suportados:auto(default) e de novofluid,parentouNUMBERA altura ouselectorpara jQuery.closest()- NEW
minheight {Number}altura mínima da rede, funciona comfluideautoaltura (default:300) - NEW
parent {String}selector para a opção de alturaauto(default:window) margin {Number}uma margem superior para altura (opcional, padrão:0)click {String}um link parafunction(row, grid, row_el), é executado se o usuário clicar em uma linhahighlight {Boolean}cada linha selecionada (apósclick) será destacado (default:false)unhighlight {Boolean}permiteundo highlightingda linha selecionada (default:true)checked {String}pathpara uma variável ou caminho parafunction(rows, grid)é executado se o usuário selecionou/checou algumas linhasautoselect {Boolean}permite a seleção automática da primeira linha na rede, executaEXEC(config.click), padrão:falseexec {String}um link parafunction(type, page, sort)apenas para operações de lado do servidor (esforça a classificação e filtragem do cliente), tipos suportados:refreshoupagechanged {String}pathpara uma variável ou caminho parafunction(rows, grid)é executado se o usuário alterar algumas linhasdblclick {String}um link para o métodofunction(row, grid, row_el), é executado se o usuário clicar duas vezes em uma linhanoborder {Boolean}pode desativar uma fronteira em torno da rede (default:false)colwidth {Number}uma largura padrão para colunas (default:150)editable {String}um link parafunction(opt)quando o usuário realiza ediçãocontextmenu {String}um link parafunction(e, grid)quando o usuário aumenta o menu de contexto
Propriedades da coluna:
name {String}um nome de campo no objeto de linhatext {String}é um rótulo de coluna, texto com.fa fa-homerenderá FontAwesome iconwidth {Number}uma coluna largura (opcional, padrãoconfig.colwidth)align {String}pode sercenterouright(opcional, padrão:left)template {String}pode ser um modelo Tangular e o modelo é todo o objeto da linhasort {Boolean}permite a classificação (opcional, padrão:false)format {String/Number}pode ser usado para datas e números (conto de decimais) campo (opcional), por exemplo,dd.MM.yyyycurrency {String}um formato de moeda, basta adicionar uma moedaclass {String}opcional, um nome de classe de coluna personalizadaempty {String/Boolean}opcional, pode reescrever o valor vazio com o valor definido no campo vazio (o valortrueusa o valor---como um valor padrão)type {String}opcional, pode conter um tipo de dados (boolean,dateounumber) para o campoeditable {Boolean}permite a edição
Métodos:
component.redrawrow(row_object/index)redraws linha ou NEW: substitui + redraudsrow_objectcom um novonew_object_rowcomponent.clear()clarifica todas as mudançascomponent.select(row)selecionarowdeve ser o mesmo objeto que na fonte de dadoscomponent.rebind(columnsdeclaration)o método reflete o esquema- NEW:
component.reload()executaconfig.execcom o filtro e a classificação atuais - NEW:
component.empty()empties todas as fileiras
Bom para saber:
SET('link.to.data', data, 'noscroll')--> tiponoscrollinterfere com a redefinição de rolamento
Como estender uma classe de linha?
- olhando para a linha
{{ if active, ele estende uma classe de linha adicionandodg-active-classse oactivefor válido
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Use-o com <ui-component name="datatable">Quando o componente ainda não está carregado, jComponent Descarrega-o no primeiro uso do endereço DEF.fallback (a partir do Componentator CDN por padrão). autor: Peter Širka. fonte: o Componentator Reserva de componentes, licença 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>