我能顏色的ExtJS網格中的特定行下面是我從this answer拿到代碼:什麼會導致g.getView()。getRow(0).style.color =「red」不能在ExtJS Grid中運行?
然而,在實際應用中,完全相同的代碼並不顯示顏色:
不同的是,在第二個例子中,代碼被通過AJAX加載到較大的應用程序,因此它是難以用螢火蟲調試它。
我敢肯定執行viewready函數中得到,因爲我可以把在那裏的警報,並認爲它是執行,但g.getView().getRow(2).style.color='red';
沒有被某種原因執行(或正在出於某種原因復位)。
myData
變量在第二個示例中與第一個示例中的變量相同(不是從外部源加載),applicatoin只是使用PHP構建此JavaScript代碼。
什麼可能是測試示例自行工作的原因,但此代碼在較大的應用程序中不起作用?
var myData = [
['newfile.csv', 'CSV', 15313, '2011-01-24 09:49:55', 'newfile', '2011-01-24 14:40:21', 'auf letztem Stand'],
['test333.csv', 'CSV', 15313, '2011-01-24 09:49:56', 'test333', '2011-01-24 14:40:19', 'auf letztem Stand'],
['test.xls (sheet1)', 'XLS', 7168, '2011-01-24 09:49:56', 'test__sheet1', '2011-01-24 14:40:23', 'auf letztem Stand'],
['test.xls (sheet2)', 'XLS', 7168, '2011-01-24 09:49:56', 'test__sheet2', '2011-01-24 14:40:25', 'auf letztem Stand'],
['test.xls (Tabelle3)', 'XLS', 7168, '2011-01-24 09:49:56', 'test__Tabelle3', '2011-01-24 15:35:07', 'auf letztem Stand']
];
var myReader = new Ext.data.ArrayReader({}, [{
name: 'name',
type: 'string'
}, {
name: 'kind',
type: 'string'
}, {
name: 'file_size',
type: 'int'
}, {
name: 'when_file_copied',
dateFormat: 'Y-m-d H:i:s',
type: 'date'
}, {
name: 'table_name',
type: 'string'
}, {
name: 'when_table_created',
type: 'string'
}, {
name: 'status',
type: 'string'
}]);
var grid = new Ext.grid.GridPanel({
region: 'center',
style: 'margin: 10px',
store: new Ext.data.Store({
data: myData,
reader: myReader
}),
columns: [{
header: 'Worksheets zum importieren',
width: 300,
sortable: true,
dataIndex: 'name'
}, {
header: 'Typ',
width: 50,
sortable: true,
dataIndex: 'kind'
}, {
header: 'Größe (bytes)',
sortable: true,
dataIndex: 'file_size'
}, {
header: 'Wann Datei kopiert',
width: 150,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d H:i:s'),
dataIndex: 'when_file_copied'
}, {
header: 'MySQL Tabellenname',
width: 300,
sortable: true,
dataIndex: 'table_name'
}, {
header: 'Wann Tabelle erstellt',
width: 160,
sortable: true,
dataIndex: 'when_table_created'
}, {
header: 'Status',
width: 300,
sortable: true,
dataIndex: 'status'
}],
viewConfig: {
},
title: 'Gültige Dateien (.csv und .xsl/.xslx unter 4MB) in Importverzeichnis (webdev: /data/storage/test/original_excel)',
width: 1300,
listeners: {
'rowdblclick': function(grid_smart_worksheets, index, rec){
var id = grid_smart_worksheets.getSelectionModel().getSelected().json[0];
replace_region_with_uri_content('backend/application/importmanager/single', targetRegion, 'id='+id);
},
'viewready' : function(g) {
g.getView().getRow(0).style.color="red";
g.getView().getRow(2).style.color="#aaa";
}
},
autoHeight: true,
frame: true
});
回答
下面Gajahlemu的代碼工作得很好,因爲它是在我的演示,但在我的應用我不得不修改其應用到內部TD
,以避免與其他樣式衝突的CSS,所以這個作品例如:
.grid-row-highlight td {
background-color: yellow;
color: red;
font-weight: bold;
}
這可能是因爲回答你的鏈接是一個黑客?在上一個問題中,將樣式應用於單個行時,我已經提供了使用該方法的方法。你爲什麼不放棄它,讓我們知道它是否有用。 – McStretch 2011-01-24 15:41:11