我有一个数据存储区和一个网格.我试图声明一个名为FullName的新列,它将组合两个数据索引.花了一些时间研究这个问题后,我知道它可以是渲染器(网格级),也可以是数据存储区中的自定义列(映射?).
有人可以提供实现此类列的代码示例吗?
// XML
<person>
<first_name>John</first_name>
<last_name>Smith</last_name>
</person>
// Store
Ext.create('Ext.data.Store', {
autoLoad: true,
storeId: 'TestStore',
fields: ['first_name', 'last_name'],
data: parsed_xml_object,
proxy: {
type: 'memory',
reader: {
type: 'xml',
record: 'person'
}
}
});
// Grid
TestGrid = Ext.create('Ext.grid.Panel', {
title: 'Test',
store: Ext.data.StoreManager.lookup('TestStore'),
columns: [
{ header: 'First Name', dataIndex: 'first_name' },
{ header: 'Last Name Name', dataIndex: 'last_name' },
],
height: 200,
autowidth: true
});
Run Code Online (Sandbox Code Playgroud) 我有一个XML文件,我需要修改.首先,我需要进行分组,然后排除几个节点.
<cars>
<car>
<make>Toyota</make>
<model>Camry</model>
<color>White</color>
<price>123</price>
</car>
<car>
<make>Honda</make>
<model>Accord</model>
<color>White</color>
<price>423</price>
</car>
</cars>
Run Code Online (Sandbox Code Playgroud)
这是我执行转换的代码:
<root>
{
for $color in distinct-values(doc('cars.xml')//cars/car/color)
let $car := doc('cars.xml')//cars/car
return <appearance color="{$color}">
{ $car[color eq $color ] }
</appearance>
}
</root>
Run Code Online (Sandbox Code Playgroud)
我明白了:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<appearance color="White">
<car>
<make>Toyota</make>
<model>Camry</model>
<color>White</color>
<price>123</price>
</car>
<car>
<make>Honda</make>
<model>Accord</model>
<color>White</color>
<price>423</price>
</car>
</appearance>
</root>
Run Code Online (Sandbox Code Playgroud)
除了一个问题,这需要我所需要的95%.我需要从最终的XML中排除节点"颜色"和"价格",同时保留分组.
我试图在我的回复声明中执行以下操作:{$ car [color eq $ color]/*[not(self :: price)] [not(self :: color)]}
有点作品,但它完全消除了"汽车"元素!有什么建议?