我已成功在普通网格列上呈现条件语句
{
header: ' ',
dataIndex: 'status_b2',
menuDisabled: true,
flex: 1,
sortable: false,
renderer : function(value, meta) {
var status = value.split("<br/>")[0];
if (status == "Unset Price"){
meta.style = "background-color:pink;";
}
else if (status == "Available"){
meta.style = "background-color:green;";
}else if (status == "Booked Unpaid"){
meta.style = "background-color:yellow;";
}else if (status == "Booked Paid"){
meta.style = "background-color:orange;";
}else if (status == "Checked In"){
meta.style = "background-color:red;";
}else if (status == "Checked Out"){
meta.style = "background-color:purple;";
}
return value;
}
我的问题是如何在templatecolumn网格上使用条件逻辑进行渲染?如果room_status ==“Dirty”,我想将背景颜色添加为红色。
{
text: 'Room List',
xtype: 'templatecolumn',
tpl: 'ROOM {room_number} <br/> {room_type_name} <br/> {bed_type} | {room_status}',
menuDisabled: true,
flex: 1,
sortable: false
}
答案 0 :(得分:0)
点击这些链接sencha forum和stackoverflow link
我们可以使用一些内联函数并调用它们。请遵循此link。在这些功能中实现你的逻辑。
答案 1 :(得分:0)
我也习惯使用渲染器向单元格添加样式以使其突出显示。实际上,templatecolumn已经有一个默认应用的渲染器,它基本上返回应用于记录的模板。因此,如果您想使用自己的渲染器,您可以从defaultRenderer复制两行代码,或者直接调用列的defaultRenderer:
function customRenderer(value, metaData, record, rowIndex, colIndex, store, view)
{
if (record.get('severity') == 'critical')
{
metaData.tdCls += ' redHighlight';
}
return view.panel.columns[colIndex].defaultRenderer(value, metaData, record);
};