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);
}
});
}
添加回答
舉報