如何在SAPUI中禁用ListItem

时间:2019-11-14 07:37:03

标签: list sapui5

我有一个sap.m.List类型的列表,其中包含可点击的项目。而且我想禁用其中一些项,但是我找不到任何可以实现此目的的属性或类似属性。

实际上,当查看getTypeListType时,它说:

  

无效类型不能用于禁用列表项。

我已经搜索了禁用/启用属性以及类似的属性,但是找不到。

2 个答案:

答案 0 :(得分:2)

您可以尝试被阻止的属性。尽管从1.69版开始不推荐使用,但仍可以使用。如果您为整个项目设置 blocked = true,则该项目将显示为灰色,并且不会对用户的操作做出反应。

它看起来像这样: Blocked property for StandardListItem

答案 1 :(得分:2)

您可以尝试使用Active / Inactive类型,但是如上所述,它不能直观地表明列表项是可单击的。

但是,它确实抑制了press事件。请参见下面的示例,其中状态为包含“ M”的列表项被设置为非活动状态。

var myFormatter = {
    state: function(value) {
        if (value.includes("M")) {
          return "Inactive";
        } 
        return "Active";
    }
};

sap.ui.controller("view1.initial", {
    onInit : function(oEvent) {
        var aData = [
            {
                "fname": "Waddie",
                "lname": "Bowman",
                "tel": "(305)703-1256",
                "address": "6454 Molestie Ave",
                "city": "Guelph",
                "state": "ME",
                "zip": 95624
            },
            {
                "fname": "Stuart",
                "lname": "Warren",
                "tel": "(167)539-0934",
                "address": "2691 Sollicitudin Ln",
                "city": "Stamford",
                "state": "MA",
                "zip": 74267
            },
            {
                "fname": "Bill",
                "lname": "Geouque",
                "tel": "(461)569-0913",
                "address": "9313 Orci Rd",
                "city": "Winfield",
                "state": "VT",
                "zip": 96899
            },
            {
                "fname": "Marcellous",
                "lname": "Presas",
                "tel": "(759)512-5873",
                "address": "2739 Fringilla Ave",
                "city": "Camden",
                "state": "MD",
                "zip": 62068
            },
            {
                "fname": "Candis",
                "lname": "Berger",
                "tel": "(913)437-0578",
                "address": "5804 Ipsum Ave",
                "city": "Phoenix",
                "state": "LA",
                "zip": 40023
            },
            {
                "fname": "Lorena",
                "lname": "Adams",
                "tel": "(143)240-5746",
                "address": "3113 Sollicitudin Ct",
                "city": "Shrewsbury",
                "state": "SD",
                "zip": 81678
            },
            {
                "fname": "Lloyd",
                "lname": "Penning",
                "tel": "(856)265-2829",
                "address": "6683 Libero Ln",
                "city": "Vacaville",
                "state": "FL",
                "zip": 35151
            },
            {
                "fname": "Jessica",
                "lname": "Hobson",
                "tel": "(518)458-3456",
                "address": "5961 Amet Ct",
                "city": "Chicago",
                "state": "MS",
                "zip": 44633
            },
            {
                "fname": "Laura",
                "lname": "Nadaraja",
                "tel": "(259)103-8426",
                "address": "1075 Placerat Ct",
                "city": "Moulton",
                "state": "CT",
                "zip": 53957
            },
            {
                "fname": "Denise",
                "lname": "Shroff",
                "tel": "(942)911-7736",
                "address": "7563 Ac Ln",
                "city": "The Dalles",
                "state": "IL",
                "zip": 22777
            }
        ];

        var oModel = new sap.ui.model.json.JSONModel();
        oModel.setData(aData);
        this.getView().setModel(oModel);
    },


    onPress: function(oEvent) {
        alert("OK");
    }
});

sap.ui.xmlview("main", {
    viewContent: jQuery("#view1").html()
})
.placeAt("uiArea");
.myCellStyle1 {
    background-color : #f60;
}
.myCellStyle2 {
    background-color : #0F0;
}
<script id="sap-ui-bootstrap"
    src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
    data-sap-ui-theme="sap_bluecrystal"
    data-sap-ui-xx-bindingSyntax="complex"
    data-sap-ui-libs="sap.m"></script>

<div id="uiArea"></div>

<script id="view1" type="ui5/xmlview">
    <mvc:View
      height="100%"
      controllerName="view1.initial"
      xmlns:mvc="sap.ui.core.mvc"
      xmlns:core="sap.ui.core"
      xmlns="sap.m">
        <List id="myList" items="{/}" mode="None">
            <items>
                <StandardListItem 
                    title="{fname} {lname}" 
                    description="{address} {city} {state}" 
                    type="{
                        path: 'state',
                        formatter: 'myFormatter.state'
                    }"
                    press="onPress"/>
            </items>
        </List>
    </mvc:View>
</script>

相关问题