2

ext.netの例に示されているように、これは列エントリをフォーマットするためのコードです

var template = '<span style="color:{0};">{1}</span>';

var change = function (value) {
   return String.format(template, (value > 0) ? "green" : "red", value);
};

今私の質問は、私は同様にコラム会社をフォーマットしたいです。

var company = function(value) {
   return String.format(template, (record.data.change > 0) ? "green" : "red", value);
}; 

レコードが関数に与えられないため、これは機能しませんでした。また、レンダラーで呼び出されたFnにパラメーターを渡すことができませんでした。

var company = function(value, change) {
   return String.format(template, (change > 0) ? "green" : "red", value);
}; 

jqueryの回避策も想像できますが、それは単なる作業とセレクターの集まりです。そして、私はext.net / extjsにまったく慣れていないので、何かを見落としていると確信しています

PSはい、私は古いバージョンのext.netを使用しているので、examples1.ext.netへのリンクです;)

4

2 に答える 2

4

常にExtJSAPIを確認する必要があります。ここでは、 Ext.grid.column.Column-cfg-rendererを探します

レンダラーの引数は

  • valueオブジェクト 現在のセルのデータ値
  • metaDataオブジェクト 現在のセルに関するメタデータのコレクション。レンダラーによって使用または変更できます。認識されるプロパティは、tdCls、tdAttr、およびstyleです。
  • recordExt.data.Model 現在の行のレコード
  • rowIndex数値 現在の行のインデックス
  • colIndex数値 現在の列のインデックス
  • ストアExt.data.Store データストア
  • ビューExt.view.View 現在のビュー

だから私はこれがあなたのために働くはずだと思います

var company = function(value, meta, record) {
   return String.format(template, (record.data.change > 0) ? "green" : "red", value);
}; 
于 2013-02-08T09:44:42.403 に答える
2

レンダラーの3番目の引数はレコードです。1つ目は値、2つ目はセルに関するメタデータです:http://docs.sencha.com/ext-js/3-4/# !/ api / Ext.grid.Column-cfg-renderer

于 2013-02-08T09:45:02.330 に答える