我使用SAPUI5 1.52显示一个树液。 ui 。表。我需要根据每行的列值禁用行选择器框。
我已经找到了树液的解决方案。 m 。表在sap.ui.table table row selector disable in sapui5或此处https://archive.sap.com/discussions/thread/3879723处。
sap。 ui .table没有getItems()方法,因此我尝试使用getRows()来代替,但与此oCb.setEnabled(false)给我一个“未捕获的TypeError:无法读取未定义的属性'setEnabled'错误。
我使用上述sap.m.table解决方案的代码创建了一个简单的示例。 https://jsbin.com/pujorohobe/1/edit?html,js,output
onLoad: function() {
// disable checkboxes
var tbl = this.getView().byId('idProductsTable');
var header = tbl.$().find('thead');
var selectAllCb = header.find('.sapMCb');
selectAllCb.remove();
tbl.getItems().forEach(function(r) {
var obj = r.getBindingContext().getObject();
var oStatus = obj.Status;
var cb = r.$().find('.sapMCb');
var oCb = sap.ui.getCore().byId(cb.attr('id'));
if (oStatus == "Discontinued") {
oCb.setEnabled(false);
}
});
},
为简单起见,我使用了onSelectionChange()来调用onLoad,该方法应根据Status =“ Discontinued”停用复选框 在我的实际应用程序中,我想使用addDelegate:
tbl.addDelegate({
onAfterRendering: function () {
...
}
}, tbl);