如何有条件地将样式应用于Kendo UI网格“行”?
我的角度页面有下面的Kendo UI gridOptions:
ctrl.gridOptions = {
rowTemplate: '<tr data-uid="#: uid #" class="#:ApprovalStatus='Approved'? "approved" : "unapporved"#"></tr>',
//rowTemplate: '<tr data-uid="#: uid #" class="#:ApprovalStatus='Approved' ? 'approved' : 'unapproved' #"><td>#:ProcessName #</td><td>#:TradeAmount #</td><td>#:AQRID #</td><td>#:ApprovalStatus #</td></tr>',
dataSource: {
type: 'json',
transport: {
read: function (options) {
DataSvc.getTradesData().then(function (response) {
options.success(response.data);
}, function (response) {
alert('something went wrong')
console.log(status);
});
}
},
schema: {
model: {
fields: {
IsChecked: { type: "boolean" },
ProcessName: { type: "string" },
TradeAmount: { type: "number" },
ApprovalStatus: { type: "string" }
}
}
},
},
selectable: "row",
sortable: true,
columns: [
{ field: "IsChecked", width: "30px", title: " ", template: '<input ng-disabled="dataItem.ApprovalStatus" ng-model="dataItem.IsChecked" type="checkbox" />', filterable: false, headerTemplate: '<input type="checkbox" ng-click="ctrl.checkAllTrades()" ng-model="ctrl.tradesChecked">' },
{ field: "ProcessName", title: "Process Name", width: "190px", filterable: { cell: { showOperators: false, template: processNameDropDownEditor } }, template: '<a style="font-size: x-normal;" href="#=Link#">{{dataItem.ProcessName}}</a>', attributes: { style: "text-align:left;" } },
{ field: "TradeAmount", title: "Trade Amount", width: "120px", filterable: { cell: { showOperators: false } } },
{ field: "ApprovalStatus", title: "Approval Status", width: "150px", filterable: { cell: { showOperators: false, template: approvalStatusDropDownEditor } } }
],
filterable: { mode: "row" },
height: 550,
};
批准和未批准的样式定义如下:
.approved {
background-color: green;
}
.unapproved{
background-color: red;
}
所以问题是,当我应用行模板时,网格呈现为空。 并且,当我应用注释的rowTemplate时,网格将与行一起渲染,但只应用“批准”样式,如下所示:
如何根据数据绑定字段的条件将样式应用于每个TR? 另外,当应用注释的rowTemplate时,列不能正确显示,我们该如何解决?
更新:
下面的rowTemplate帮助解决了背景颜色问题。 但仍然无法解决列对齐问题。
rowTemplate: '<tr data-uid="#: uid #" ng-class="{approved: '#:ApprovalStatus#' =='Approved', unapproved: '#:ApprovalStatus#' =='Unapproved'}"><td>#:ProcessName #</td><td>#:Account #</td><td>#:AQRID #</td><td>#:ApprovalStatus #</td></tr>',
你需要在这里使用ng-class
指令
rowTemplate: '<tr data-uid="#: uid #" ng-class="{approved : #:ApprovalStatus# =='Approved', unapporved: #:ApprovalStatus# !='Approved'></tr>'
你可以检查这个fiddle
,希望它有帮助....
上一篇: How to conditionally apply style to a Kendo UI grid 'row'?
下一篇: How to validate / verify an X509 Certificate chain of trust in Python?