sapui5中的sap.ui.table表行选择器禁用

问题描述 投票:1回答:1

是否可以禁用特定行的行选择器。 setEnable方法不适用于sap.ui.table。请查看附带的屏幕截图以便更好地理解。

enter image description here

sapui5
1个回答
-3
投票

请仔细阅读以下代码。它可能对你有帮助。

sap.ui.controller("my.controller", {
  onInit: function() {
    var model = new sap.ui.model.json.JSONModel([
      {Product: "Power Projector 4713", Weight: "33"},
      {Product: "Gladiator MX", Weight: "33"},
      {Product: "Hurricane GX", Weight: "45"},
      {Product: "Webcam", Weight: "33"},
      {Product: "Monitor Locking Cable", Weight: "41"},
      {Product: "Laptop Case", Weight: "64"}
    ]);
    
    var vw = this.getView();
    vw.setModel(model);
 
    
    // disable checkboxes
    var tbl = vw.byId('tblProduct');
    tbl.addDelegate({
      onAfterRendering: function() {
        var header = this.$().find('thead');
        var selectAllCb = header.find('.sapMCb');
        selectAllCb.remove();
        
        this.getItems().forEach(function(r) {
          var obj = r.getBindingContext().getObject();
          var enabled = parseInt(obj.Weight, 10) > 40;
          var cb = r.$().find('.sapMCb');
          var oCb = sap.ui.getCore().byId(cb.attr('id'));
          oCb.setEnabled(enabled);
        });
      }
    }, tbl);
  }
});

var oView = sap.ui.xmlview({
  viewContent: jQuery('#chartView').html()
}).placeAt('content');
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>JS Bin</title>
    <script 
            src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" 
            id="sap-ui-bootstrap" 
            data-sap-ui-theme="sap_bluecrystal" 
            data-sap-ui-xx-bindingSyntax="complex" 
            data-sap-ui-libs="sap.m"></script>
    <script id="chartView" type="sapui5/xmlview">
    <mvc:View
      controllerName="my.controller"
      xmlns:l="sap.ui.layout"
      xmlns:u="sap.ui.unified"
      xmlns:mvc="sap.ui.core.mvc"
      xmlns="sap.m"
      class="viewPadding">
      <App>
        <pages>
          <Page title="Table CheckBox Disable" class="marginBoxContent" >
            <content>
              <Table id="tblProduct" mode= "MultiSelect"
                selectionChange = "rowSelect"
                items="{/}">
                <columns>
                  <Column>
                    <Label text="Product" />
                  </Column>
                  <Column>
                    <Label text="Weight" />
                  </Column>
                </columns>
                <items>
                  <ColumnListItem>
                    <cells>
                      <Text  text="{Product}" />
                      <Text text="{Weight}" />
                    </cells>
                  </ColumnListItem>
                </items>
              </Table>
            </content>
          </Page>
        </pages>
      </App>
      </mvc:View>
    </script>
  </head>
  <body class="sapUiBody">
    <div id='content'></div>
  </body>
</html>

此致,Farooq。

© www.soinside.com 2019 - 2024. All rights reserved.