2012-05-03 6 views
0

これは単純なはずです。JsonStoreとXTemplateを使用してExt.PanelでDataViewを表示するにはどうすればよいですか?

var dataStore = new Ext.data.JsonStore({ 
    autoLoad : true, 
    url : '#mvclink(' json.getCostReportsJsonData ')#&layout_type=txt', 
    root : 'data', 
    id : 'dataStoreId', 
    fields : ['project', 'cost'] 
}); 

実際には、クエリを呼び出してJson形式に変換するColdFusionによってURLが生成されます。

{"recordcount":1,"columnlist":"project,cost","data":[{"project":"ABC","cost":2250}]} 

私は今のところそこにダミーデータを持っているので、1行のみが返されます:JSONオブジェクトとして戻ってきたので、私は、すべてがここで正しく動作すると思います。

次に、私はそれでデータビューでExt.Panelを宣言:

var myPanel = new Ext.Panel({ 
    layout : 'fit', 
    id : 'myPanel', 
    title : "My Panel", 
    monitorResize : true, 
    deferredRender : false, 
    items : new Ext.DataView({ 
     store : dataStore, 
     tpl : costReportTemplate 
    }), 
    renderTo : Ext.getBody() 
}); 

参照テンプレートがあるのXTemplate:

var costReportTemplate = new Ext.XTemplate(
    '<tpl for=".">', 
    '<p><b>{project}</b>: {cost:this.format}</p>', 
    '</tpl>', { 
    format : function (v) { 
     var s = Ext.util.Format.usMoney(v); 
     return s.substring(0, s.indexOf('.')); 
    } 
}); 

ページをレンダリングする際に、私は、パネルを見ることができますしかし、それは完全に空であり、私はFirebugに何の誤りもありません。私は間違って何をしていますか?

+0

私はそれを理解しました!私は小数点でダミーのコスト値を使用していないので、フォーマット関数が正しく機能していませんでした。しかし、私はどんな誤りも得ていなかった。 if(s.indexOf( '。')!= -1)をチェックするように変更しました。 – drearyworlds

答えて

0

私はそれを理解しました!私は小数点でダミーのコスト値を使用していないので、フォーマット関数が正しく機能していませんでした。しかし、私はどんな誤りも得ていなかった。私はif (s.indexOf('.') != -1)をチェックするように変更しました。

関連する問題