我需要在网站上找到所有输入元素(sap.m.Input
)。
我知道我可以通过sap.ui.getCore().byId()
通过其ID找到一个元素,但这对我没有帮助。
我正在寻找类似sap.ui.getCore().getByType("sap.m.Input")
的东西。我该怎么做呢?
编辑:我无权访问网站的源代码,我正在通过chrome扩展程序在使用SAPUI5的网站上注入javascript
答案 0 :(得分:0)
<mvc:View ...>
<Input fieldGroupIds="myInputs" />
</mvc:View>
// In the Controller
this.getView().getControlsByFieldGroupId("myInputs").filter(c => c.isA("sap.m.Input"));
在this solution中利用Get list of all instantiated controls in registry:
const allRegisteredControls = sap.ui.getCore().byFieldGroupId(""); // From https://stackoverflow.com/a/54227512/5846045
const inputControls = allRegisteredControls.filter(c => c.isA("sap.m.Input"));
API reference: sap.ui.base.Object#isA
这将返回给定类型的所有已注册实例。请不要将已经被破坏的元素包括在内。
答案 1 :(得分:0)
您可以做的是像这样将每个“输入”字段设置为特定的字段组
<input fieldGroupIds="MyGroup" />
,然后使用byFieldGroupId这样的方法获取所有这些字段
var aMyGroupControls = sap.ui.getCore().byFieldGroupId("MyGroup");
aMyGroupControls将充满控件数组
答案 2 :(得分:0)
我找到了这个解决方案:
我从DOM-Tree获得类sap.ui.getCore().byId()
的所有元素,
document.getElementsByClassName(“ sap.m.Input”)`。
然后我通过在该数组的每个元素的ID上调用string myFile= File.ReadAllLines(Application.StartupPath.ToString() + @"..\..\..\Data\myTxtFile.txt")
来获得相应的UI5-Elements。