这正在使用 Henrique在以前的帖子中建议的“隐形技巧”
function doGet() {
var app = UiApp.createApplication();
var checkbox = app.createCheckBox("Toggle Visiblity").setName("togglebox").setId("togglebox").setValue(true);
var checkbox2 = app.createCheckBox("Toggle Visiblity").setVisible(false);
var hpanel = app.createHorizontalPanel();
hpanel.add(checkbox).add(checkbox2);
app.add(hpanel);
var listBox = app.createListBox(true)
.addItem("Item #1")
.addItem("Item #2")
.addItem("Item #3")
.setVisible(false);
app.add(listBox);
var ChandlerA = app.createClientHandler().forTargets(listBox).setVisible(false)
.forTargets(checkbox2).setVisible(true).setValue(false)
.forEventSource().setVisible(false);
checkbox.addClickHandler(ChandlerA)
var ChandlerB = app.createClientHandler().forTargets(listBox).setVisible(true)
.forTargets(checkbox).setVisible(true).setValue(true)
.forEventSource().setVisible(false);
checkbox2.addClickHandler(ChandlerB)
listBox.setVisible(true);
return app
}
编辑:请注意,我认为最后一条语句listBox.setVisible(true)
不合逻辑,但如果我省略它,则列表框在单击之前不可见......我真的不明白......有人知道吗?
EDIT2:哎呀,我是多么愚蠢,我没有注意到setVisible(false)
你在创建列表框时添加的内容;-P 哼哼……我真的很愚蠢……我猜你想开始“隐形”?在这种情况下,将对这段代码进行一些小改动......就像这样(我最终决定展示这两个版本......)
function doGet() {
var app = UiApp.createApplication();
var checkbox = app.createCheckBox("Toggle Visiblity").setName("togglebox").setId("togglebox").setVisible(false);
var checkbox2 = app.createCheckBox("Toggle Visiblity").setVisible(true).setValue(false);
var hpanel = app.createHorizontalPanel();
hpanel.add(checkbox).add(checkbox2);
app.add(hpanel);
var listBox = app.createListBox(true)
.addItem("Item #1")
.addItem("Item #2")
.addItem("Item #3")
.setVisible(false);
app.add(listBox);
var ChandlerA = app.createClientHandler().forTargets(listBox).setVisible(false)
.forTargets(checkbox2).setVisible(true).setValue(false)
.forEventSource().setVisible(false);
checkbox.addClickHandler(ChandlerA)
var ChandlerB = app.createClientHandler().forTargets(listBox).setVisible(true)
.forTargets(checkbox).setVisible(true).setValue(true)
.forEventSource().setVisible(false);
checkbox2.addClickHandler(ChandlerB)
return app
}