Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAPUI5:如何将视图中定义的控件id(例如:Label/toobar)检索到函数中的控制器中?_Sapui5 - Fatal编程技术网

SAPUI5:如何将视图中定义的控件id(例如:Label/toobar)检索到函数中的控制器中?

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(具有
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);