我正在尝试使用 SAPUI5 和 XML 作为视图的开发范例来创建两个动态选择列表。
这是我的 oData 模型的示例:
- /EmployeeSet - 返回两个实体:
- Pernr = '00000001'
- Pernr = '00000002'
- /EmployeeSet('00000001') - 返回一个实体:
- Pernr ='00000001' 名称 ='Jacob'
- /EmployeeSet('00000002') - 返回一个实体:
- Pernr ='00000002' 名称 ='Matthew'
- /EmployeeSet('00000001')/KidsListSet - 返回两个实体:
- PernrKid = '00000010' 姓名 = 'Sophia'
- PernrKid = '00000011' 姓名 = '詹姆斯'。
- /EmployeeSet('00000002')/KidsListSet - 返回三个实体
- PernrKid = '00000020' 名称 = '亚历山大'
- PernrKid = '00000021' 名称 = 'Zoe'
- PernrKid = '00000022' 姓名 = '奥利弗'
Select1 按预期工作,默认值在那里,点击操作我可以看到两个值。
两种选择:
<Select id="select1" width="100%" items="{ path: '/EmployeeSet' } change="handleSelect1">
<core:Item key="{Pernr}" text="{Name}" />
</Select>
<Select id="select2" width="100%" items="{ path: '/KidsListSet' }>
<core:Item key="{PernrKid}" text="{Name}" />
</Select>
handleAssigment 函数的代码:
handleAssigments : function(evt){
var context = evt.getParameter("selectedItem").getBindingContext();
var Path = context.getPath() + '/KidsListSet';
var select2 = this.getView().byId("select2");
return select2.bindAggregation("items", Path, new sap.ui.core.Item({ key : "{PernrKid}", text : "{Name}" }));
},
当我更改 select1 中的值时,select2 会更新,我会看到两个或三个条目(基于第一个选择)
但是我有几个问题:
如何预填充 select2 的默认值(例如 PernrKid = '00000010' Name = 'Sophia')
也许无需在视图控制器中创建新的选择项就可以进行数据绑定?
谢谢!
更新时间:2014 年 6 月 2 日
我如何设置 oData 模型:
// create root view
var oView = sap.ui.view({
id: "app",
viewName: "view.App",
type: "JS",
viewData: { component : this }
});
// Load oData Model
var sServiceUrl = "/sap/opu/odata/sap/YKIDS/";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true, "", "");
oView.setModel(oModel);
...
五。