通过 JSNI 更改小部件文本
changing Widget Text through JSNI
您好,我在 GWT 中使用 JSNI 来使用一些 java 脚本代码。我在 uibinder(file.ui.xml) 中定义了我的小部件:
<g:Label ui:field="LBLMsg" text="mytext" styleName="{style.conceptMessage}" width="1800px"/>
我通过以下代码在 java 文件中使用了这个标签:
@UiField 标签 LBLMsg;
它工作正常我可以使用标签小部件并且可以使用 LBLMsg.setText("sometex") 更改文本
然而,当我将它传递给我的 JSNI 函数以在某些 JAVAScript 代码中使用它时,我的问题就开始了。我希望使用 Java 脚本更改此标签的文本,为此我使用了以下代码:
void TestWritingLabelFromJSNI()
{
writeGWTLabel(LBLMsg.getElement());
}
private native void writeGWTLabel(Element elt)/*-{
var labelelement = document.getElementById('LBLMsg');
alert("Element labelelement ;"+labelelement );
}-*/
当我称其为标签元素时 return 为空。因此我无法将其设置为文本。我不确定自己在做什么。任何人都可以提出任何建议。非常感谢任何帮助。已经浪费了太多时间没有任何成功。
您需要做的就是:
private native void writeGWTLabel(Element elem, String text)/*-{
// Remove all children first.
while (elem.firstChild) {
elem.removeChild(elem.firstChild);
}
// Add a new text node.
if (text != null) {
elem.appendChild(elem.ownerDocument.createTextNode(text));
}
}-*/
您好,我在 GWT 中使用 JSNI 来使用一些 java 脚本代码。我在 uibinder(file.ui.xml) 中定义了我的小部件:
<g:Label ui:field="LBLMsg" text="mytext" styleName="{style.conceptMessage}" width="1800px"/>
我通过以下代码在 java 文件中使用了这个标签:
@UiField 标签 LBLMsg;
它工作正常我可以使用标签小部件并且可以使用 LBLMsg.setText("sometex") 更改文本 然而,当我将它传递给我的 JSNI 函数以在某些 JAVAScript 代码中使用它时,我的问题就开始了。我希望使用 Java 脚本更改此标签的文本,为此我使用了以下代码:
void TestWritingLabelFromJSNI()
{
writeGWTLabel(LBLMsg.getElement());
}
private native void writeGWTLabel(Element elt)/*-{
var labelelement = document.getElementById('LBLMsg');
alert("Element labelelement ;"+labelelement );
}-*/
当我称其为标签元素时 return 为空。因此我无法将其设置为文本。我不确定自己在做什么。任何人都可以提出任何建议。非常感谢任何帮助。已经浪费了太多时间没有任何成功。
您需要做的就是:
private native void writeGWTLabel(Element elem, String text)/*-{
// Remove all children first.
while (elem.firstChild) {
elem.removeChild(elem.firstChild);
}
// Add a new text node.
if (text != null) {
elem.appendChild(elem.ownerDocument.createTextNode(text));
}
}-*/