1 回答
TA贡献2041条经验 获得超4个赞
将事件modelContextChange的事件侦听器添加到您的表中。
在此对象上更改模型或上下文时触发(通过调用 setModel/setBindingContext 或由于传播)
<Table id="productsTable"
modelContextChange=".onModelContextChange"
items="{dataModel>productsList}"
sticky="ColumnHeaders"
mode="MultiSelect"
>
...
</Table>
该事件包含当前表的参数“id”。这样,您可以通过其完整 id 检索当前表,并通过微小的更改重新使用您的代码。
onModelContextChange: function(oEvent) {
var sId = oEvent.getParameter("id");
var tbl = sap.ui.getCore().byId(sId);
var header = tbl.$().find('thead');
var selectAllCb = header.find('.sapMCb');
selectAllCb.remove();
tbl.getItems().forEach(function (r) {
var obj = r.getBindingContext("dataModel").getObject();
var oStatus = obj.checkDuplicate;
var cb = r.$().find('.sapMCb');
var oCb = sap.ui.getCore().byId(cb.attr('id'));
if (oStatus == "true") {
oCb.setEnabled(true);
} else {
oCb.setEnabled(false);
}
});
}
添加回答
举报