2011-03-11 24 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