どこかにレンダリングされる前にプログレスバーのhtml表現を取得する方法があるかどうか知りたいですか?
プログレスバーをグリッドでレンダリングする必要があります。今のところ、進行状況の列にカスタムレンダラーを使用しています。
renderer: function( value, metaData, record, rowIndex, colIndex, store ) {
var id = Ext.id();
(function(){
var progress = new Ext.ProgressBar({
renderTo: id,
value: progress_value
});
}).defer(50);
return '<div id="'+ id + '"></div>';
}
ただし、グリッドがレンダリングされた後にプログレスバーがレンダリングされるため、ユーザーフレンドリーには見えません。
HTMLにレンダリングされたテンプレートソースコードを見ることができるので、この機能を使用してカスタムプログレスバーを作成することは可能だと思いますが、それほどエレガントではないと思います。
最良の方法は、次のような関数を作成することだと思います。
var generateRenderer = (function(){
var pb = new Ext.ProgressBar();
return function( progress_value ){
pb.updateValue( progress_value );
return pb.htmlRepresentationFunction();
}
})();
htmlRepresentationFunction()
htmlの再設定を返す関数はどこにありますか(その名前から明らかです)。次にgenerateRenderer()
、カスタムレンダラーで関数を使用します。