2013-06-11 77 views
1

实施例的XML文件中的存储相结合记录:ExtJS的在具有相同的字段

<BrowserInformation> 
     <Value> 
      <Year>2011</Year> 
      <Name>Firefox</Name> 
      <Count>4952</Count> 
     </Value> 
      <Year>2011</Year> 
      <Name>MSIE</Name> 
      <Count>4613</Count> 
     <Value> 
      <Year>2011</Year> 
      <Name>Chrome</Name> 
      <Count>1401</Count> 
     </Value> 
     <Value> 
      <Year>2011</Year> 
      <Name>Safari</Name> 
      <Count>1111</Count> 
     </Value> 
     <Value> 
      <Year>2011</Year> 
      <Name>Unknown</Name> 
      <Count>1119</Count> 
     </Value> 
     <Value> 
      <Year>2011</Year> 
      <Name>Opera</Name> 
      <Count>9</Count> 
     </Value> 
     <Value> 
      <Year>2012</Year> 
      <Name>Firefox</Name> 
      <Count>3544</Count> 
     </Value> 
      ... 
</BrowserInformation> 

柱形图制备: enter image description here

目前,有在图表中为XML中的每个记录中的条文件。我想得到每个浏览器的总计数(即对于Firefox,它将是4952 + 3544)。数据和商店类的配置选项idProperty和石斑鱼似乎只是将相同名称的酒吧放在图表的相邻位置,但似乎并未将它们结合起来。假定文件中的数据不能改变。我怎么做到这一点?是否有可以在模型,商店或图表中设置的特定配置属性?如果是这样?还是有另一种方式?

+0

做下面为你工作的解决方案? – Christoph

回答

2

我建议在模型中使用一个新字段,比如说“total”,并使用convert函数。

Ext JS API documentation

“如果需要更复杂的值提取的策略,然后用一个转换功能配置的领域。这是通过全行对象,并可以询问它的任何方式是必要的,以便返回所需的数据。“然后

你的转换功能,可以是这样的

function convert2Total(v, record){ 
    return record.data.firefox + record.data.chrome; 
} 

你的领域模型中的数组,那么应该是这样的:

fields: [ { name: "firefox" }, 
      { name: "chrome" }, 
      { name: "total", convert: convert2Total }] 
相关问题