重大度条件に基づいてデータグリッドの行の色を変更するにはどうすればよいですか? この EXTJS トピックは初めてです。以前は、リーダーで読み取り、ストアからストア、ライターでデータを書き込んでいました。すべてのデータをグリッドにフェッチした後、重大度条件に基づいてデータグリッドの行の色を変更するにはどうすればよいですか? コードの動作について少し説明してもらえますか?
25364 次
3 に答える
23
GridViewクラス ( Ext.grid.GridView ) を使用して、グリッドのユーザー インターフェイスを操作できます。GridPanel のviewConfigプロパティを使用することもできます。次に例を示します。
viewConfig: {
//Return CSS class to apply to rows depending upon data values
getRowClass: function(record, index) {
var c = record.get('change');
if (c < 0) {
return 'price-fall';
} else if (c > 0) {
return 'price-rise';
}
}
}
ps: ExtJS API ドキュメント自体から抜粋した例
価格下落と価格上昇は、それに応じて背景色が設定された CSS です。例えば:
.price-fall {
background-color: #color;
}
.price-rise {
background-color: #color;
}
于 2011-02-15T07:03:25.370 に答える
4
getRowClass
のメソッドを使用してそれを行うことができますGridView
( Ext JS APIを参照)。
API ドキュメントから引用された例:
viewConfig: {
forceFit: true,
showPreview: true, // custom property
enableRowBody: true, // required to create a second, full-width row to show expanded Record data
getRowClass: function(record, rowIndex, rp, ds){ // rp = rowParams
if(this.showPreview){
rp.body = '<p>'+record.data.excerpt+'</p>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
},
于 2011-02-15T06:59:43.677 に答える
0
列モデルから列にレンダラーを使用し、次のような css クラスを割り当てることができます。
そのため、customRenderer 関数:
`
function customRenderer(value, metaData, record, rowIndex, colIndex, store) {
var opValue = value;
if (value === "Rejected") {
metaData.css = 'redUnderlinedText';
} else if (value === "Completed") {
metaData.css = 'greenUnderlinedText';
} else if (value === "Started") {
metaData.css = 'blueUnderlinedText';
}
return opValue;
}`
そして、あなたのコラム:
{
header: 'Your Column Header',
dataIndex: 'your_data_index',
renderer: customRenderer
}
次に、CSS は次のようになります。
.redUnderlinedText {
background-color: blue,
color: red;
text-decoration: underline;
cursor: pointer;
}
于 2011-02-15T13:26:36.283 に答える