您好我在GWT中使用JSNI来使用一些JavaScript代码。我在uibinder(file.ui.xml)中定义了我的小部件:
<g:Label ui:field="LBLMsg" text="mytext" styleName="{style.conceptMessage}" width="1800px"/>
比我在我的java文件中通过以下代码使用此Label:
@UiField Label LBLMsg;
它工作正常我可以使用标签小部件,并可以使用LBLMsg.setText更改文本(&#34; sometex&#34;) 但是当我将它传递给我的JSNI函数以在一些JAVAScript代码中使用它时,我的问题就开始了。我希望使用Java脚本更改此标签的文本,我使用以下代码:
void TestWritingLabelFromJSNI()
{
writeGWTLabel(LBLMsg.getElement());
}
private native void writeGWTLabel(Element elt)/*-{
var labelelement = document.getElementById('LBLMsg');
alert("Element labelelement ;"+labelelement );
}-*/
当我调用它时,labelelement返回null。因此我无法设置文本。我不确定我在做什么。谁能提出任何建议。非常感谢任何帮助。已经浪费了太多时间而没有任何成功。
答案 0 :(得分:0)
您需要做的就是:
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));
}
}-*/