{ "id": 97, "shipCode": "SKCA", "shipName": "加拿大集运空运大包", "destCode": "CA", "type": "申报总价值", "beginCondition": "20", "beginRules": "gte", "endCondition": "", "endRules": "", "rules": "", "state": 1, "extrasDetail": "[{"clientId":"07563a3fe3bbe7e3ba84431ad9d055af","clientName":"广州政豪"}]", "creatTime": "2023-03-02 16:38:03", "updateTime": "2023-06-02 10:06:48", "message": "申报价值≥20usd,渠道无服务" } 这组数据 ext js 3.4 查出来的表格数据 ,extrasDetail为二级数据,如何实现折叠展示,给出完整代码
时间: 2023-07-08 20:46:54 浏览: 46
以下是一个完整的示例代码,可以让你在Ext JS 3.4中实现折叠展示extrasDetail的二级数据:
```
Ext.onReady(function() {
// 定义模型
var model = new Ext.data.Model({
fields: [
{name: 'id', type: 'int'},
{name: 'shipCode', type: 'string'},
{name: 'shipName', type: 'string'},
{name: 'destCode', type: 'string'},
{name: 'type', type: 'string'},
{name: 'beginCondition', type: 'string'},
{name: 'beginRules', type: 'string'},
{name: 'endCondition', type: 'string'},
{name: 'endRules', type: 'string'},
{name: 'rules', type: 'string'},
{name: 'state', type: 'int'},
{name: 'extrasDetail', type: 'auto'},
{name: 'creatTime', type: 'date', dateFormat: 'Y-m-d H:i:s'},
{name: 'updateTime', type: 'date', dateFormat: 'Y-m-d H:i:s'},
{name: 'message', type: 'string'}
]
});
// 创建数据源
var store = new Ext.data.Store({
reader: new Ext.data.JsonReader({
totalProperty: 'totalCount',
root: 'data',
idProperty: 'id'
}, model),
proxy: new Ext.data.HttpProxy({
url: 'your_data_url',
method: 'POST'
}),
autoLoad: true
});
// 创建折叠面板
var expander = new Ext.ux.grid.RowExpander({
tpl: new Ext.Template(
'<p>客户ID: {clientId}</p>',
'<p>客户名称: {clientName}</p>'
)
});
// 创建表格
var grid = new Ext.grid.GridPanel({
store: store,
columns: [
expander,
{header: 'ID', dataIndex: 'id', width: 50},
{header: '运输方式', dataIndex: 'shipName', width: 150},
{header: '申报类型', dataIndex: 'type', width: 100},
{header: '起始条件', dataIndex: 'beginCondition', width: 100},
{header: '结束条件', dataIndex: 'endCondition', width: 100},
{header: '状态', dataIndex: 'state', width: 50},
{header: '创建时间', dataIndex: 'creatTime', width: 120, xtype: 'datecolumn', format: 'Y-m-d H:i:s'},
{header: '更新时间', dataIndex: 'updateTime', width: 120, xtype: 'datecolumn', format: 'Y-m-d H:i:s'},
{header: '消息', dataIndex: 'message', width: 200}
],
plugins: [expander],
height: 300,
width: 800,
title: '表格数据展示',
renderTo: Ext.getBody()
});
});
```
在这个示例代码中,我们定义了一个名为model的模型,用于指定表格数据的字段和类型。我们还创建了一个名为store的数据源,用于从服务器加载数据。
然后,我们使用RowExpander插件创建了一个可展开的行,并在模板中显示了extrasDetail中的数据。我们将这个插件添加到GridPanel的plugins配置项中,使得每一行都可以展开和折叠。
最后,我们创建了一个名为grid的表格,将数据源和列配置项添加到GridPanel中,并将GridPanel渲染到页面中。
注意:示例代码中的数据源、列和模型的具体实现可能需要根据你的数据结构进行修改。