如何在 SAPUI 中禁用 ListItem
How to disable ListItem in SAPUI
我有一个 sap.m.List
类型的列表,其中包含可点击的项目。我想禁用其中一些项目,但我找不到任何 属性 或类似的东西可以实现这一点。
事实上,当查看 getType
和 ListType
时,它说:
Inactive type cannot be used to disable list items.
我搜索了 disable/enable 个属性和类似的但我找不到。
您可以尝试已阻止 属性。虽然它在 1.69 中已被弃用,但它仍然有效。如果您为整个项目设置 blocked = true 它将变灰并且不会对用户操作做出反应。
看起来像这样:
您可以尝试使用 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>
我有一个 sap.m.List
类型的列表,其中包含可点击的项目。我想禁用其中一些项目,但我找不到任何 属性 或类似的东西可以实现这一点。
事实上,当查看 getType
和 ListType
时,它说:
Inactive type cannot be used to disable list items.
我搜索了 disable/enable 个属性和类似的但我找不到。
您可以尝试已阻止 属性。虽然它在 1.69 中已被弃用,但它仍然有效。如果您为整个项目设置 blocked = true 它将变灰并且不会对用户操作做出反应。
看起来像这样:
您可以尝试使用 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>