首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >弹出式对话框/片段中表单上的BindElement()

弹出式对话框/片段中表单上的BindElement()
EN

Stack Overflow用户
提问于 2017-01-23 00:16:35
回答 1查看 6.7K关注 0票数 0

接着我提出的关于Is it possible to use 2 models in one view的问题,我现在对如何在bindElement片段中的表单上应用XML感到困惑。

片段(为简洁起见进行了删减):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<core:FragmentDefinition
   namespaces here...>
    <Dialog id="theDialogId" title="Edit Subdetail">
        <content>
            <f:SimpleForm id="EditFormId" editable="true" >
                <f:content>
                    <Label id="lblName" text="Name" labelFor="inpName" />
                    <Input id="inpName" editable="true" value="{name}"/>
                </f:content>
            </f:SimpleForm>
        </content>
    </Dialog>
</core:FragmentDefinition>

挑战:假设我有一个包含路径/master/0/detail/6/subdetail/2的模型-如何将简单形式绑定到此路径?在我所见过的示例中,对话框中的元素由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sap.ui.getCore().byId("inputId").setValue("some value)

并通过以下方式访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var uid = sap.ui.getCore().byId("inputId").getValue()

但是,我想对路径使用绑定。

我遇到的问题是如何获得对简单表单的引用,以便可以使用bindElement()。

如果这是一个视图,我会使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var theForm = this.getView().byId("EditFormId");

var oBindingContext = event.oSource.getBindingContext();
theForm.bindElement(oBindingContext.getPath())

但是,片段并不与视图紧密耦合,因此这将不起作用。相反,我认为我必须使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var dlgForm = sap.ui.core.Fragment.byId("theFragmentId", "EditFormId")

var oBindingContext = event.oSource.getBindingContext();
dlgForm.bindElement(oBindingContext.getPath())

这可能是正确的,但是我不知道如何在XML view声明中应用"theFragmentId“。有人能帮我驱散迷雾吗?

编辑:根据公认的答案,我缺少的是所需的片段ID可以作为sap.ui.xmlfragment()函数的第一个(可选)参数给出。绑定到基于片段的控件的关键是获得它的句柄,但是sap.ui.core.Fragment.byId(fragId,ctrlId)函数需要一个片段id。我的问题是,我专注于XML片段声明以及如何在其中应用id。这在SAPUI5中感觉不一致,但我猜能够将ID应用到片段中可能会有一些便利。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 01:30:08

你可以试试像这样的东西。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
onOpenDialog: function(oEvent) {
    if(!this._oEditSubDetailDialog){
            this._oEditSubDetailDialog = sap.ui.xmlfragment("fragmentId", "namespace.and.path.to.your.fragment", this);
            this.getView().addDependent(this._oEditSubDetailDialog);
    }

    var sPathToBind = oEvent.getSource().getBindingContext().getPath();
    sap.ui.core.Fragment.byId("fragmentId","EditFormId").bindElement(sPathToBind);

    this._oEditSubDetailDialog.open();
}

...just需要确保事件的源代码控件绑定了您要编辑的上下文。

你也可以直接在对话框上使用bindElement,这样你就不需要在对话框中检索表单控件了……

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this._oEditSubDetailDialog.bindElement(sPathToBind)

关于XML片段的This API documentationthis walkthrough guide可能会很有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41797603

复制
相关文章
[Office] 设置分散对齐
在需要选定的词语 一般用于列项的时候让左边的项目看起来对其。
轻舞飞扬SR
2021/02/24
2.5K0
[Office] 设置分散对齐
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
通过alignment设置,展开后可以设置水平方向或垂直方向的对齐方式。 PyQt5设置文本对齐方法: self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignVCenter) 两个参数一个是横向靠右,一个是纵向居中。
小蓝枣
2020/09/23
8.4K0
【CSS】CSS 背景设置 ⑤ ( 盒子中图片对齐操作 )
首先 , 设置 div 盒子 , 设置宽高 , 以及背景颜色 , 用于显示 div 范围 ;
韩曙亮
2023/03/30
2.4K0
【CSS】CSS 背景设置 ⑤ ( 盒子中图片对齐操作 )
DITA 已死
已经有差不多 2 年没有更新了,由此看来 DITA 作为文档交付应该已经是日薄西山了。应该没有什么人通过写 XML 的方式来写文档了。
HoneyMoose
2021/01/18
5860
DITA 已死
Pulumi 如何在 Windows 环境中设置
没有安装文件, Pulumi 没有安装文件,所以你不能按照下载后安装的方式来进行配置。
HoneyMoose
2021/05/21
2K0
Pulumi 如何在 Windows 环境中设置
如何在PQ里面数据靠左对齐?
如果要把靠左的空值数据去除,把右边的数据靠左移动的话,肯定是针对记录进行调整,最终再整理成一张表格。
逍遥之
2020/03/24
1.1K0
如何在PQ里面数据靠左对齐?
Excel表列序号
将字符转化为ASCII码,A-Z是连续的,且A为65,所以转换以后减一个65 + 1,值就在1-26里了。
_kyle
2020/12/03
1K0
如何在django中设置定时任务?
Django 作为后端Web开发框架,有时候我们需要用到定时任务来或者固定频次的任务来执行某段代码,这时我们就要用到Celery了。Django中有一个中间件:Django-celery
BigYoung小站
2020/05/04
2.7K0
如何在 Linux 中设置主机名
设置主机名,设置主机名成功后,不要忘记也要在 hosts 文件中配置下 127.0.0.1.
HoneyMoose
2020/05/19
3.7K0
如何在 Linux 中设置主机名
如何在 Linux 中安装、设置和使用 SNMP?
SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。它允许网络管理员通过远程方式收集设备的运行状态、性能数据和错误信息,以便进行故障排除和网络优化。在Linux系统中,我们可以安装、设置和使用SNMP来监控和管理服务器和网络设备。本文将详细介绍在Linux中安装、设置和使用SNMP的步骤和方法。
网络技术联盟站
2023/06/25
3.2K0
如何在 Linux 中安装、设置和使用 SNMP?
如何设置条码数据的对齐方式
我们在使用条码软件制作条形码的时候,条码的数据默认是在条形码下方居中显示的。有一些用户因为需要可能会将数据位置做一个调整,比如条码数据居左显示、居右显示、两端分散对齐等。实现此种功能十分简单,下面我们会详细介绍操作方法。
神奇像素科技
2021/12/17
1.9K0
如何设置条码数据的对齐方式
关于如何在idea中设置文档注释模板
操作:File -> Settings - > Editor -> File and Code Templates -> Files -> Class在右边的文件框里编辑需要注释的模板,应用保存之后,当我们创建类的时候就会自动生成注释。如果要设置接口的,可以选择Interface文件。
海拥
2021/08/23
4.7K0
如何在Linux中设置Java主目录路径?
Java is a popular programming language and framework in the IT industry. There are a lot of applications developed with Java. Java requires Java Development Kit to develop applications. Compiled java applications can run on systems those are installed Java Runtime Environment a.k.a JRE. We will look in this post on how to set and check JRE or JDK or Java Home Path.
用户7886150
2021/02/02
5.2K0
如何在 Linux 中设置 SSH 无密码登录?
SSH(Secure Shell)是一种安全网络协议,用于在不安全的网络上安全地进行远程登录和执行命令。在 Linux 系统中,使用 SSH 可以方便地远程连接到其他计算机,并且还可以通过配置无密码登录来提高操作的便利性和安全性。本文将介绍如何在 Linux 中设置 SSH 无密码登录。
网络技术联盟站
2023/09/01
3.8K0
如何在 Linux 中设置 SSH 无密码登录?
如何在 Chrome 中设置HTTP服务器?
首先,定义问题:在 Chrome 浏览器中设置HTTP服务器主要涉及到修改网络设置,使用HTTP服务器可以帮助用户访问网络内容,提高网络速度或者保护隐私。
华科云商小徐
2023/10/25
5450
如何在 Linux 中安装、设置和使用 SNMP?
在Linux系统中,我们首先需要安装SNMP软件包。具体的安装命令可能因您使用的Linux发行版而有所不同。以下是一些常见的发行版的安装命令示例:
网络技术联盟站
2023/09/06
3.3K0
如何在 Linux 中安装、设置和使用 SNMP?
如何在CDH中为Kafka设置流量配额
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 从0.9版本开始,Kafka集群新增了针对生产和消费请求进行配额(quotas)控制。本篇文章Fayson主要介绍如何在CDH中为Kafka设置流量配额。 文档概述 1.环境准备 2.Producer和Consumer流量配额测试 3.总结 测试环境
Fayson
2018/07/13
2.9K0
如何在 Linux 中设置 SSH 无密码登录
SSH(Secure SHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。
数据科学工厂
2023/09/06
6830
如何在 Linux 中设置 SSH 无密码登录
点击加载更多

相似问题

返回数组,ctype

12

如何从ctype读取返回指针的值?

116

正确地将ctype浮点数转换为python浮点数

21

从C++返回的多维数组在使用ctype时发送垃圾。

12

返回struct - 32位linux时ctype的Segfault

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文