我正在尝试在 UI 小部件中使用标签,但标签值在处理程序函数中不可用(返回“null”)。
它应该像那样工作(在这种情况下,它对我来说有点没用)还是我做错了什么?如果有人对 TAGS 有任何经验,我将不胜感激;-)
这是我用于测试的代码:
function doGet(e) {
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
var lbl = app.createTextBox().setWidth('400').setId('lbl');
lbl.setText('empty').setTag('tag value');
lbl.setText('original value = '+lbl.getTag());// this line to check that setTag / getTag is working as it should in the same function
app.add(panel.add(lbl));
var CH = app.createServerHandler('showtag').addCallbackElement(panel);
lbl.addClickHandler(CH)
return app;
}
function showtag(){
var app = UiApp.getActiveApplication();
var lbl = app.getElementById('lbl')
lbl.setText('new value = '+lbl.getTag());
return app
}
可以用这个链接测试
编辑:我在代码中添加了一行读取和写入 doGet 函数中的标签,只是为了测试......
编辑 2:Srik 的解决方案,就这么简单:
function showtag(e){
var app = UiApp.getActiveApplication();
var lbl = app.getElementById('lbl')
lbl.setText('from showtag value = '+e.parameter.lbl_tag);
return app
}