2011-03-11 22 views
2

我有一个EXTJS Web应用程序,它以json格式返回数据。结果在ExtJS Grid中分页显示,并由pagingToolbar处理。我正在使用slidingPager插件来选择页面。当用户使用滑块选择页面时,我需要的是向页面编号显示该页面的第一个结果的标题。Ext.JsonStore访问服务器在json中返回的自定义属性

因此,在杰森数据服务器返回additionaly计数和记录数据等我添加一个属性称为标题,实际上是每个页面的第一个结果的标题数组。

我不知道我是如何访问和处理这个新的属性,所以我可以抓住例如第10页的JSON数据头属性的第10项。

在此先感谢 安德烈亚斯

回答

0

谢谢!有效。我Ext.ux.SlidingPager源,改变了这个

Ext.ux.SlidingPagerWithHeaders = Ext.extend(Object, { 

    init : function(pbar){ 
     var idx = pbar.items.indexOf(pbar.inputItem); 
     Ext.each(pbar.items.getRange(idx - 2, idx + 2), function(c){ 
      c.hide(); 
     }); 
     var slider = new Ext.Slider({ 
      width: 114, 
      minValue: 1, 
      maxValue: 1, 
      plugins: new Ext.slider.Tip({ 
       getText : function(thumb) { 
        var header = pbar.store.reader.jsonData.headers[thumb.value-1]; 
        return String.format('Page <b>{0}</b> of <b>{1}</b><br><br>', thumb.value, thumb.slider.maxValue)+header; 
       } 
      }), 
      listeners: { 
       changecomplete: function(s, v){ 
        pbar.changePage(v); 
       } 
      } 
     }); 
     pbar.insert(idx + 1, slider); 
     //pb.store.getHeaders = pb.store.createAccessor("headers"); 
     pbar.on({ 
      change: function(pb, data){ 
       slider.setMaxValue(data.pages); 
       slider.setValue(data.activePage); 
      } 
     }); 
    } 
}); 

我返回JSON数据这样

{ "count": 100, 
    "records" : [{record 1 ...},{ record 2 ...}, ...], 
    "headers" : ["Header1", "Header2"] 
} 

都说页面大小是50,所以我送两个头。

+0

忽略此行//pb.store.getHeaders = pb.store.createAccessor(“headers”); – 2011-03-14 10:07:30