使用 OJET 创建动态 ojTable
Creating a Dynamic ojTable Using OJET
我有一个 JSON 数据,其中包含 n 行和 n 列。我需要从中创建一个 table 来显示带有 pagination.Is 的结果 有可能创建一个 ojtable 具有来自 JSON 的动态行数和列数?
组件将根据 JSON 文件中的数据行数为您处理这些行。如果要限制开始时显示的行数,则设置 ojTable 的列选项可以传递一个对象,该对象将动态设置应显示的列。
像这样:
<table data-bind="ojComponent: {component: 'ojTable',
data: pagingDatasource,
columns: dynamicCols}">
</table>
self.getCols = function () {
var url = getUrl();
$.getJSON(url).then(function (data) {
var tempCols = [];
for (var property in data.items[0]) {
if (data.items[0].hasOwnProperty(property)) {
tempCols.push({headerText: property, field: property});
}
}
self.dynamicCols(tempCols);
self.pagingDatasource(new oj.PagingTableDataSource(new oj.ArrayTableDataSource(data.items, {idAttribute: 'empno'})));
}
这是一个展示如何操作的 jsFiddle。您可以在两个 URL 之间添加(取消)注释,以查看基于 REST 端点返回的 JSON 生成的不同表。 https://jsfiddle.net/peppertech/mdp0xjh3/
我有一个 JSON 数据,其中包含 n 行和 n 列。我需要从中创建一个 table 来显示带有 pagination.Is 的结果 有可能创建一个 ojtable 具有来自 JSON 的动态行数和列数?
组件将根据 JSON 文件中的数据行数为您处理这些行。如果要限制开始时显示的行数,则设置 ojTable 的列选项可以传递一个对象,该对象将动态设置应显示的列。
像这样:
<table data-bind="ojComponent: {component: 'ojTable',
data: pagingDatasource,
columns: dynamicCols}">
</table>
self.getCols = function () {
var url = getUrl();
$.getJSON(url).then(function (data) {
var tempCols = [];
for (var property in data.items[0]) {
if (data.items[0].hasOwnProperty(property)) {
tempCols.push({headerText: property, field: property});
}
}
self.dynamicCols(tempCols);
self.pagingDatasource(new oj.PagingTableDataSource(new oj.ArrayTableDataSource(data.items, {idAttribute: 'empno'})));
}
这是一个展示如何操作的 jsFiddle。您可以在两个 URL 之间添加(取消)注释,以查看基于 REST 端点返回的 JSON 生成的不同表。 https://jsfiddle.net/peppertech/mdp0xjh3/