如何根据行值禁用sapui5 sap.ui.table表行选择器?

时间:2019-03-26 14:33:11

标签: sapui5

我使用SAPUI5 1.52显示一个树液。 ui 。表。我需要根据每行的列值禁用行选择器框。

enter image description here

我已经找到了树液的解决方案。 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);

0 个答案:

没有答案