У меня есть следующий код для преобразования моего набора данных JSON в HTML-таблицу.
Я хочу знать, если это самый быстрый метод, или я должен использовать jqote2 с jquery для написания шаблона?
Требования:
- может изменить определения столбцов одним щелчком мыши (клиент может изменить способ просмотра таблицы, изменится массив определений столбцов и перестроить таблицу)
- сортировка, фильтрация и разбиение на страницы (я считаю, что необработанные данные могут быть отсортированы и таблица может быть перестроена)
- преобразований (если, скажем, 1 столбец содержит данные длины в разных единицах, то можно добавить новый столбец в наборе необработанных данных, содержащий данные в 1 единице, чтобы можно было отсортировать данные)
Так может ли кто-нибудь направить меня, если я на правильном пути или я работаю над тем, что уже существует?
<div id="hii"><!-- table loads here --></div>
<script>
var set1={ // JSON dataset & col definitions
'col':[ // definition/template of data to load in column cells
[function(x){return '<a href="?sid='+x[1]+'">'+x[0]+'</a>';}],
[function(x){return '<a href="?id='+x[2]+'">'+x[2]+'</a>';}],
],
'data':[ // raw data, output table has only 2cells/row using these 3 values from each row
['Name 1','00000001','Value 1'],
['Name 2','00000002','Value 2'],
['Name 3','00000003','Value 3'],
['Name 4','00000004','Value 4'],
['Name 1','00000001','Value 5'],
['Name 5','00000005','Value 1'],
['Name 6','00000006','Value 1'],
['Name 7','00000007','Value 2'],
['Name 8','00000008','Value 6'],
['Name 9','00000009','Value 3'],
['Name A','00000010','Value 7'],
['Name B','00000011','Value 7'],
['Name C','00000012','Value 1'],
],
};
function tbody(x){ // function to create table, using dataset name passed to x
for(i=0,data='';i<x.data.length;i++){
data+='<tr>';
for(j=0;j<x.col.length;j++){
data+='<td>'+x.col[j][0](x.data[i])+'</td>';
}
data+='</tr>';
}
return data;
}
document.getElementById('hii').innerHTML='<table>'+tbody(set1)+'</table>';
</script>