SAPUI5:如何将视图中定义的控件id(例如:Label/toobar)检索到函数中的控制器中?
我需要检索控件的id(具有SAPUI5:如何将视图中定义的控件id(例如:Label/toobar)检索到函数中的控制器中?,sapui5,Sapui5,我需要检索控件的id(具有id=“multipleechoicequestion”)并需要在按下按钮时隐藏它 如何做到这一点 App.view.xml <mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core" displayBlock="true" controllerName="opens
id=“multipleechoicequestion”
)并需要在按下按钮时隐藏它
如何做到这一点
App.view.xml
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:f="sap.ui.layout.form" xmlns:core="sap.ui.core"
displayBlock="true" controllerName="opensap.onlinequestionnaire.controller.App" height="100%">
<VBox id="multipleChoiceHolder">
<HBox width="700px" backgroundDesign="Solid" alignItems="Center" id="mCHorHolder1">
<CheckBox id="checkBox1"/><Label text="{questionnaire>/data/0/answers/0}" id="multipleChoice1"/>
</HBox>
</VBox>
在我的goToNext:function()
中,我希望检索VBox的id并将其隐藏
我试图警告this.byId()
,但它返回未定义的您的VBox的ID是“MultipleChieCholder”,而不是“MultipleChieCeQuestion”。那么,它不应该是这个.byId('multiplechiceholder')而不是这个.byId('multiplechicequestion')?获取VBox:
// id as stated in the description
oVBox = this.getView().byId("multipleChoiceQuestion");
// or
// id as stated in the view in the code sample
oVBox = this.getView().byId("multipleChoiceHolder");
设置可见性:
oVBox.setVisible(false);
顺便说一下,您的文章描述的id和文章代码示例中的视图并不相同。但我相信您已经意识到了这个小混乱,它与您关于检索和隐藏控件的一般方法的问题无关。只是为了安全起见想提一下是的。我做了改变,它成功了。但是,您是这样做的,还是同时使用no1dea提到的getView()?同样,在较新版本的UI5中不需要getView()。你用什么版本?另外,为什么另一个版本虽然使用了错误的id(“MultipleChiiceQuestion”),但对您有效?谢谢。为什么我们需要使用getView()?因为当我做这个.byId(“multipleechoiceholder”).setVisible(false)时,它工作了。我是UI5的新手,因此试图了解基本知识。嗯,在UI5的较新版本中,您并不真正需要它,请参阅:“使用给定的本地ID返回连接视图的元素。”为了清晰起见,我使用它。GetId()的作用与getView()相同。GetId()@Nabi谢谢,这很有帮助。您好,Nabi,它解决了这个问题。方法是(选择正确的id),然后链接setVisible(false)。在no1dea建议的答案中,所选id不正确,但其他内容是正确的@你能把你的答案的id编辑成“多重持证人”吗?这样它就变成了完美的答案非常感谢。
oVBox.setVisible(false);