Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是什么导致了g.getView().getRow(0.style.color=”的出现;“红色”;不在ExtJS网格中运行?_Extjs_Formatting_Grid - Fatal编程技术网

是什么导致了g.getView().getRow(0.style.color=”的出现;“红色”;不在ExtJS网格中运行?

是什么导致了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变量与第一个示例中的变量相同

我能够使用下面的代码为ExtJS网格的特定行着色,我从以下代码获得:

但是,在实际应用中,完全相同的代码不显示颜色:

不同之处在于,在第二个示例中,代码是通过AJAX加载到更大的应用程序中的,因此很难使用Firebug对其进行调试

我确信执行在viewready函数中,因为我可以在其中放置一个警报,并看到它被执行,但是
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实现。对不起,刚才的混乱。我认为这对于本地应用程序来说是一个更简单的破解。