假设我有一个包含2列的gridpanel:Name和Salary,相应商店的dataIndex具有相同的名称
在extjs中,渲染器功能如下:
function(value, metaData, record, rowIndex, colIndex, store){}
现在,当我根据proeprty的名称调用一个randerer时,如果我想进行不同的渲染,我该怎么办呢? E,G。
function(value, metaData, record, rowIndex, colIndex, store){
if (record.name == 'Salary'|| record.id == 'Salary')
{
//render logic
}
else if (record.name == 'Name'|| record.id == 'Name'){
//different render logic
}
}
这个的正确语法是什么?
答案 0 :(得分:1)
嗯,从语法上来说这是正确的。但if语句中的条件不正确。 value
变量保存正在呈现的值,因此如果您需要检查它是否相当简单,如果条件。
在您的情况下,您正在尝试提取薪水或姓名? record
变量保存整个记录。没有record.name
字段。记录对象包含以下字段:
idProperty
指定因此,如果您正在进行任何比较并检查,则需要使用record.data.<property-name>
。
在您的情况下,您有一个名称和工资的dataIndex,因此代码将是:
function(value, metaData, record, rowIndex, colIndex, store) {
if(record.data.property == Name) {
//render logic for name
}
else if(record.data.property == Salary) {
// render logic for salary
}
}
最后,此函数将进入列的渲染器属性。