是什么导致了g.getView().getRow(0.style.color=”的出现;“红色”;不在ExtJS网格中运行?
我能够使用下面的代码为ExtJS网格的特定行着色,我从以下代码获得: 但是,在实际应用中,完全相同的代码不显示颜色: 不同之处在于,在第二个示例中,代码是通过AJAX加载到更大的应用程序中的,因此很难使用Firebug对其进行调试 我确信执行在viewready函数中,因为我可以在其中放置一个警报,并看到它被执行,但是是什么导致了g.getView().getRow(0.style.color=”的出现;“红色”;不在ExtJS网格中运行?,extjs,formatting,grid,Extjs,Formatting,Grid,我能够使用下面的代码为ExtJS网格的特定行着色,我从以下代码获得: 但是,在实际应用中,完全相同的代码不显示颜色: 不同之处在于,在第二个示例中,代码是通过AJAX加载到更大的应用程序中的,因此很难使用Firebug对其进行调试 我确信执行在viewready函数中,因为我可以在其中放置一个警报,并看到它被执行,但是g.getView().getRow(2.style.color='red'由于某种原因未被执行(或由于某种原因被重置) 第二个示例中的myData变量与第一个示例中的变量相同
g.getView().getRow(2.style.color='red'代码>由于某种原因未被执行(或由于某种原因被重置)
第二个示例中的myData
变量与第一个示例中的变量相同(不是从外部源加载的),应用程序只需使用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下面的代码与我的演示中的代码一样好用,但在我的应用程序中,我不得不修改CSS,将其应用于内部TD
,以避免与其他样式冲突,例如:
.grid-row-highlight td {
background-color: yellow;
color: red;
font-weight: bold;
}
添加事件后,加载你的数据(DATALOVALID),让网格通过改变颜色来响应,就像现在的“VIEWEADED”
< P>请考虑这一点:
您的数据是远程加载的(使用ajax),或者您的数据太大,因为数据加载和数据呈现之间可能存在时间延迟,因此调用viewready handler函数可能会失败
g.getView().getRow(2)
因为“行”还没有出现(未定义)
试着用它的解决方案好得多。以下是我的示例,说明如何实现该功能:
....
viewConfig: {
getRowClass: function(record, rowIndex, rp, ds){
if(rowIndex == 2){
return 'red-row';
} else {
return '';
}
}
},
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);
},
},
....
注意:别忘了在css文件中或
标记之间声明类“red row”,即
.red-row {
color: red;
}
你链接到的答案是黑客吗?在前面的问题中,我已经提供了将样式应用于单个行时使用的方法。你为什么不试一试,让我们知道这是否有效。是的,这是一个简单的应用程序简单的黑客。如果您计划使用远程存储,请使用McStretch实现。对不起,刚才的混乱。我认为这对于本地应用程序来说是一个更简单的破解。