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