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
Javascript Extjs网格面板一列背景颜色在另一列值上更改_Javascript_Extjs_Extjs3 - Fatal编程技术网

Javascript Extjs网格面板一列背景颜色在另一列值上更改

Javascript Extjs网格面板一列背景颜色在另一列值上更改,javascript,extjs,extjs3,Javascript,Extjs,Extjs3,我有一个Extjs编辑器网格面板,其中我必须根据另一列的值更改一列的css,然后如何做我不能使用渲染器功能,因为它可以在onload上工作。是否有其他方式我附加代码,其中我有性别列和id列,所以当性别列选择男性,然后选择背景身份证的颜色应该改成粉红色,否则怎么办 { id: 'value', name: 'value', header: 'Gender', dataIndex: 'insured'

我有一个Extjs编辑器网格面板,其中我必须根据另一列的值更改一列的css,然后如何做我不能使用渲染器功能,因为它可以在onload上工作。是否有其他方式我附加代码,其中我有性别列和id列,所以当性别列选择男性,然后选择背景身份证的颜色应该改成粉红色,否则怎么办

  {
            id: 'value',
            name: 'value',
            header: 'Gender',
            dataIndex: 'insured',
            width: 100,
            editor: new fm.ComboBox({

                typeAhead: true,
                displayField: 'gender',
                mode: 'local',
                transform: 'gender',
                triggerAction: 'all',
                selectOnFocus: true,
                forceSelection: true,
                stripeRows: true,
                lazyRender: true,
                listeners: {

                    }
                }
            })
        },
  {
        id: 'ID',
        name: 'ID',
        header: 'ID',
        dataIndex: 'ID',
        width: 100,
        hidden: true,
        editor: new fm.TextField({
            allowBlank: true,
            maxLength: 500
        })
    }

这将适用于简单的渲染

CSS:

.custom-column
{
    background-color: #ccc; 
}
columns: [{
    dataIndex: 'name',
    renderer: function (value, meta) {
        meta.css = 'custom-column';
        return value;
    }
}]
columns: [{
    dataIndex: 'ID',
    ...
    tdCls: 'ID' //add table css class
}],

viewConfig: {
    getRowClass: function(record, index) {
        var gender = record.get('insured');

        if (gender === 0) {
        //male
            return 'gender-male';
        } else if (gender === 1) {
        //female
            return 'gender-female';
        } else {
        //unknown
            return 'gender-unknown';
        }
    }
}
.gender-male .ID {
    background-color: #088da5;
}
.gender-female .ID {
    background-color: #f799af;
}
.gender-unknown .ID {
    background-color: #BADA55;
}
JavaScript:

.custom-column
{
    background-color: #ccc; 
}
columns: [{
    dataIndex: 'name',
    renderer: function (value, meta) {
        meta.css = 'custom-column';
        return value;
    }
}]
columns: [{
    dataIndex: 'ID',
    ...
    tdCls: 'ID' //add table css class
}],

viewConfig: {
    getRowClass: function(record, index) {
        var gender = record.get('insured');

        if (gender === 0) {
        //male
            return 'gender-male';
        } else if (gender === 1) {
        //female
            return 'gender-female';
        } else {
        //unknown
            return 'gender-unknown';
        }
    }
}
.gender-male .ID {
    background-color: #088da5;
}
.gender-female .ID {
    background-color: #f799af;
}
.gender-unknown .ID {
    background-color: #BADA55;
}
编辑: 可以使用在渲染期间将自定义CSS类应用于行

重写此函数以在执行过程中将自定义CSS类应用于行 翻译此函数应返回CSS类名(或空) 将添加到行的换行div.to的字符串“” 应用多个类名,只需返回在 字符串(例如“我的类另一个类”)

Javascript:

.custom-column
{
    background-color: #ccc; 
}
columns: [{
    dataIndex: 'name',
    renderer: function (value, meta) {
        meta.css = 'custom-column';
        return value;
    }
}]
columns: [{
    dataIndex: 'ID',
    ...
    tdCls: 'ID' //add table css class
}],

viewConfig: {
    getRowClass: function(record, index) {
        var gender = record.get('insured');

        if (gender === 0) {
        //male
            return 'gender-male';
        } else if (gender === 1) {
        //female
            return 'gender-female';
        } else {
        //unknown
            return 'gender-unknown';
        }
    }
}
.gender-male .ID {
    background-color: #088da5;
}
.gender-female .ID {
    background-color: #f799af;
}
.gender-unknown .ID {
    background-color: #BADA55;
}
附加CSS:

.custom-column
{
    background-color: #ccc; 
}
columns: [{
    dataIndex: 'name',
    renderer: function (value, meta) {
        meta.css = 'custom-column';
        return value;
    }
}]
columns: [{
    dataIndex: 'ID',
    ...
    tdCls: 'ID' //add table css class
}],

viewConfig: {
    getRowClass: function(record, index) {
        var gender = record.get('insured');

        if (gender === 0) {
        //male
            return 'gender-male';
        } else if (gender === 1) {
        //female
            return 'gender-female';
        } else {
        //unknown
            return 'gender-unknown';
        }
    }
}
.gender-male .ID {
    background-color: #088da5;
}
.gender-female .ID {
    background-color: #f799af;
}
.gender-unknown .ID {
    background-color: #BADA55;
}

仅供参考,如果记录值发生变化,渲染器将调用每个团队。所以你实际上可以使用渲染器。谢谢你的回答…但我的问题是,我使用的是extjs编辑器网格面板,我已经使用渲染器来更改某些列的背景颜色…但我的问题是,当性别组合框将选择男性时,只有ID列的背景颜色更改为其他颜色,否则不是这样的…可以吗你给我一些示例代码意味着我正在使用id的beforeshow函数..并且在里面我想更改背景颜色,谢谢你写下我的答案;)让我知道你是否觉得它有用。hii应用了,但我仍然没有得到我正在使用的Extjs 3.4,我希望这个css应用后,选择性别为是,这样它应该会影响到其他列的Extjs编辑器网格面板立即像监听器改变…和使用这个get row类我没有得到性别值我使用了警报..嘻谢谢回答我已经解决了我的问题…使用渲染器功能…再次感谢你,你的答案也是正确的。我第一次尝试使用渲染器功能,它工作得很好,没有问题。。。。我希望我们能保持联系