面板内的 SAPUI5 过滤列表
SAPUI5 Filtered List inside Panels
我正在尝试创建一个页面,该页面需要一个包含过滤列表的面板。
我之前有 "GROUPS" 和 "SYSTEMS" 的单独 JSON 文件,但后来将它们合并为一个文件。
这是我的新 JSON 文件:
{
"TECHOPSSet" : [
{
"GROUP" : "1",
"SYSTEMS": [
{
"SysID" : "sys1",
"SysDesc" : "System1",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
},
{
"GROUP" : "2",
"SYSTEMS": [
{
"SysID" : "sys2",
"SysDesc" : "System2",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
},
{
"SysID" : "sys3",
"SysDesc" : "System3",
"Availability" : "2",
"Performance" : "1",
"Exception" : "2",
"Configuration" : "3"
}
]
},
{
"GROUP" : "3",
"SYSTEMS": [
{
"SysID" : "sys4",
"SysDesc" : "System4",
"Availability" : "1",
"Performance" : "1",
"Exception" : "1",
"Configuration" : "1"
},
{
"SysID" : "sys5",
"SysDesc" : "System5",
"Availability" : "2",
"Performance" : "2",
"Exception" : "3",
"Configuration" : "1"
},
{
"SysID" : "sys6",
"SysDesc" : "System6",
"Availability" : "1",
"Performance" : "1",
"Exception" : "2",
"Configuration" : "3"
}
]
},
{
"GROUP" : "4",
"SYSTEMS": [
{
"SysID" : "sys7",
"SysDesc" : "System7",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
},
{
"GROUP" : "5",
"SYSTEMS": [
{
"SysID" : "sys8",
"SysDesc" : "System8",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
}
]
}
这是我创建的视图的片段,但它不起作用。我认为 "items path" 一定有问题,但我不知道如何修复它。
<core:FragmentDefinition xmlns:l="sap.ui.layout"
xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" xmlns="sap.m">
<List id="homelistID" items="{ path: '/TECHOPSSet/GROUP' }" >
<items>
<CustomListItem type="Inactive">
<Panel id="homePanelID" expandable="true" expanded="false" headerText="{GROUP}">
<Toolbar height="2rem">
<Text text="Technical" />
<ToolbarSpacer />
<Text text="Monitoring" />
<ToolbarSpacer />
<Text text="Business" />
</Toolbar>
<List id="techopsListID" items="{ path: '/TECHOPSSet/SYSTEMS'}">
<items>
<CustomListItem type="Active">
<l:HorizontalLayout>
<Image src="{parts: ['Availability', 'Performance', 'Exception'] , formatter: 'sap.ui.proj.util.Formatter.techMonSummary'}" />
<Text text="{SysDesc}" />
<!--<Image src="{parts: ['enter BizOps parts here'] , formatter: 'sap.ui.proj.util.Formatter.bizMonSummary'}" /> -->
</l:HorizontalLayout>
</CustomListItem>
</items>
</List>
</Panel>
</CustomListItem>
</items>
</List>
这是我的控制器的一个片段...
onInit : function() {
var homePage = this.getView().byId("homePage");
var oPanelGroup = new sap.ui.model.json.JSONModel(
"model/panelgroup.json");
var oPanelItems = new sap.ui.model.json.JSONModel(
"model/TECHOPSSet.json");
var HomePanel = sap.ui.xmlfragment("sap.ui.proj.fragment.HomePanel");
// sap.ui.getCore().byId("homelistID").setModel(oPanelGroup);
sap.ui.getCore().byId("homelistID").setModel(oPanelItems);
console.log(oPanelGroup);
sap.ui.getCore().byId("techopsListID").setModel(oPanelItems);
console.log(oPanelItems);
homePage.addContent(HomePanel);
},
所以基本上,我如何在 SAPUI5 中以 "GROUPS" 是面板而 "SYSTEMS" 是该面板内的列表的方式实现它?
将第一个列表的路径更改为“{path:'/TECHOPSSet'}”,将第二个列表的路径更改为“{path:'SYSTEMS'}。如果没有进一步的设置,则不应应用到您可以使用缩写形式的绑定,例如“{SYSTEMS}”。
再来一个提示。您可以利用属性将自动传播到子组件这一事实,而不是将模型设置到每个控件。
var view = this.getView();
view.setModel(oPanelItems);
view.addDependent(HomePanel);
我正在尝试创建一个页面,该页面需要一个包含过滤列表的面板。
我之前有 "GROUPS" 和 "SYSTEMS" 的单独 JSON 文件,但后来将它们合并为一个文件。
这是我的新 JSON 文件:
{
"TECHOPSSet" : [
{
"GROUP" : "1",
"SYSTEMS": [
{
"SysID" : "sys1",
"SysDesc" : "System1",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
},
{
"GROUP" : "2",
"SYSTEMS": [
{
"SysID" : "sys2",
"SysDesc" : "System2",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
},
{
"SysID" : "sys3",
"SysDesc" : "System3",
"Availability" : "2",
"Performance" : "1",
"Exception" : "2",
"Configuration" : "3"
}
]
},
{
"GROUP" : "3",
"SYSTEMS": [
{
"SysID" : "sys4",
"SysDesc" : "System4",
"Availability" : "1",
"Performance" : "1",
"Exception" : "1",
"Configuration" : "1"
},
{
"SysID" : "sys5",
"SysDesc" : "System5",
"Availability" : "2",
"Performance" : "2",
"Exception" : "3",
"Configuration" : "1"
},
{
"SysID" : "sys6",
"SysDesc" : "System6",
"Availability" : "1",
"Performance" : "1",
"Exception" : "2",
"Configuration" : "3"
}
]
},
{
"GROUP" : "4",
"SYSTEMS": [
{
"SysID" : "sys7",
"SysDesc" : "System7",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
},
{
"GROUP" : "5",
"SYSTEMS": [
{
"SysID" : "sys8",
"SysDesc" : "System8",
"Availability" : "1",
"Performance" : "1",
"Exception" : "3",
"Configuration" : "2"
}
]
}
]
}
这是我创建的视图的片段,但它不起作用。我认为 "items path" 一定有问题,但我不知道如何修复它。
<core:FragmentDefinition xmlns:l="sap.ui.layout"
xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" xmlns="sap.m">
<List id="homelistID" items="{ path: '/TECHOPSSet/GROUP' }" >
<items>
<CustomListItem type="Inactive">
<Panel id="homePanelID" expandable="true" expanded="false" headerText="{GROUP}">
<Toolbar height="2rem">
<Text text="Technical" />
<ToolbarSpacer />
<Text text="Monitoring" />
<ToolbarSpacer />
<Text text="Business" />
</Toolbar>
<List id="techopsListID" items="{ path: '/TECHOPSSet/SYSTEMS'}">
<items>
<CustomListItem type="Active">
<l:HorizontalLayout>
<Image src="{parts: ['Availability', 'Performance', 'Exception'] , formatter: 'sap.ui.proj.util.Formatter.techMonSummary'}" />
<Text text="{SysDesc}" />
<!--<Image src="{parts: ['enter BizOps parts here'] , formatter: 'sap.ui.proj.util.Formatter.bizMonSummary'}" /> -->
</l:HorizontalLayout>
</CustomListItem>
</items>
</List>
</Panel>
</CustomListItem>
</items>
</List>
这是我的控制器的一个片段...
onInit : function() {
var homePage = this.getView().byId("homePage");
var oPanelGroup = new sap.ui.model.json.JSONModel(
"model/panelgroup.json");
var oPanelItems = new sap.ui.model.json.JSONModel(
"model/TECHOPSSet.json");
var HomePanel = sap.ui.xmlfragment("sap.ui.proj.fragment.HomePanel");
// sap.ui.getCore().byId("homelistID").setModel(oPanelGroup);
sap.ui.getCore().byId("homelistID").setModel(oPanelItems);
console.log(oPanelGroup);
sap.ui.getCore().byId("techopsListID").setModel(oPanelItems);
console.log(oPanelItems);
homePage.addContent(HomePanel);
},
所以基本上,我如何在 SAPUI5 中以 "GROUPS" 是面板而 "SYSTEMS" 是该面板内的列表的方式实现它?
将第一个列表的路径更改为“{path:'/TECHOPSSet'}”,将第二个列表的路径更改为“{path:'SYSTEMS'}。如果没有进一步的设置,则不应应用到您可以使用缩写形式的绑定,例如“{SYSTEMS}”。 再来一个提示。您可以利用属性将自动传播到子组件这一事实,而不是将模型设置到每个控件。
var view = this.getView();
view.setModel(oPanelItems);
view.addDependent(HomePanel);