我在设置表的行数时遇到了麻烦,无法自动填充其封装容器的可用空间.
根据API,将visibleRowCountMode属性设置为sap.ui.table.VisibleRowCountMode.Auto应该将表呈现为
"[...]自动填充周围容器的高度 .visibleRowCount属性会相应地自动更改.所有行都需要相同的高度,否则自动模式并不总是按预期工作."
我使用了以下代码:
var oTable = new sap.ui.table.Table( {
rowHeight : 30,
height : "100%",
// The below property is seemingly ignored... What did I do wrong?
visibleRowCountMode : sap.ui.table.VisibleRowCountMode.Auto
});
Run Code Online (Sandbox Code Playgroud)
...但正如你在这个jsbin示例中看到的那样http://jsbin.com/vazuz/1/edit它只显示默认的10行,当然不会"相应地改变visibleRowCount属性":-(
有人有解决方案吗?提前致谢!
=====================
编辑:感谢@ matz3的回答,我最终能够解决这个问题.
将周围的容器DIV设置为100%,这似乎被忽略了.然而,将其设置为固定高度,效果很好.但我真正想要的是,如果用户调整窗口大小,则需要相应地调整可用行数.因此将其设置为固定高度不是一个选择......
然而,诀窍在于一些额外的CSS:不仅需要将DIV设置为100%高度,还需要将BODY和HTML(!!)设置为100%的高度:
html, body {
height: 100%
}
div#uiArea {
height: 100%
}
Run Code Online (Sandbox Code Playgroud)
现在,表格跨越可用视口的整个高度,并且调整窗口大小可以很好地调整表格.请参阅此处的最终工作解决方案:http://jsbin.com/bosusuya/3/edit
Matz3,谢谢你的帮助!
我创建了这个片段:
var dialogFrafment = sap.ui.xmlfragment(
"appIntra.fragment.dialog",
this.getView().getController() // associate controller with the fragment
);
this.getView().addDependent(dialogFrafment);
sap.ui.getCore().byId("idMailReport").setValue(sap.ui.getCore().getModel("mailUser"));
dialogFrafment.
dialogFrafment.open();
Run Code Online (Sandbox Code Playgroud)
完成后如何删除?
我们如何从XML视图中将参数传递给i18n模型?
没有参数
<Label text="{i18n>myKey}"/>
Run Code Online (Sandbox Code Playgroud)
但是我们如何在该表达式中传递参数?
到目前为止,我发现的唯一信息是http://scn.sap.com/thread/3586754.我真的希望这不是正确的方法,因为这看起来更像是一个(丑陋)黑客.
我在 XML 文件中的屏幕上有几个元素
<layout:VerticalLayout xmlns:layout="sap.ui.layout" xmlns="sap.m">
<Input />
<Button />
<!-- ... -->
</layout:VerticalLayout>
Run Code Online (Sandbox Code Playgroud)
如何添加布局重力或垂直对齐控件之类的内容?例如,我想要元素位于屏幕中央。
我在尝试在简单表单上绑定数据时遇到问题。我正在使用模拟服务器并已成功将数据绑定到列表/表
我的 manifest.json 看起来像这样
"mock": {
"dataSource": "mainService"
}
Run Code Online (Sandbox Code Playgroud)
我的模拟数据(UserDetailsSet.json)看起来像这样
[{
"ID_PassNum": "cu001",
"Title": "Mr",
"Name": "Don",
"Surname": "Ownery",
"ResType": "SA",
"Country": "South Africa"
}]
Run Code Online (Sandbox Code Playgroud)
我的 SimpleForm 字段看起来像这样
<Label text="Name" />
<Input value="{mock>/UserDetailsSet/0/Name}" />
<Label text="Surname" />
<Input value="{mock>/UserDetailsSet/0/Surname}"/>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我想将 expand 参数传递给,read因为如果我像这样调用服务它不起作用:
oModel1.read("/LinesSet?$expand=ToCells", {
Run Code Online (Sandbox Code Playgroud) 我有一个要求,需要将列表项的数量实时更新到页面的子标题。我想要 use sap.ui.base.EventProvider、聚合绑定或表达式绑定。请引导我完成,因为我以前从未使用过它。
如果我删除列表项,列表项的数量应该实时更新。
在我的 UI5 应用程序中,我有一个表,其中每一行都包含一个sap.m.Switch,它通过 绑定到模型formatter,因为数据来自数据库作为1/ 0,而不是true/ false,并且这可能打破了默认的双向数据绑定。
为了根据此开关的编辑值更新数据模型,我实现了以下change-event:
onChangeSwitch: function onChangeSwitch(oEvent) {
let context = oEvent.oSource.getBindingContext();
let itemIndex = context.sPath.substr(1);
let oModel = this.getView().byId("idTablePersons").getModel();
oModel.oData[itemIndex].isPersonActive = (oEvent.mParameters.state) ? 1 : 0;
oModel.refresh();
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我不确定这是否是实现此类逻辑的正确方法。
更改sap.m.Switch值后是否有更新模型的标准方法?