这是我的代码:
var sb = new qx.ui.form.SelectBox();
sb.add( new qx.ui.form.ListItem("English") );
sb.add( new qx.ui.form.ListItem("Nederlands") );
sb.add( new qx.ui.form.ListItem("Deutsch") );
sb.add( new qx.ui.form.ListItem("français") );
sb.add( new qx.ui.form.ListItem("Српски") );
如何使用setSelection()选择“Deutsch”,如果项目是数值,该怎么办?我还可以为这些标签设置值,还是SelectBox()仅限于标签?
例如:
value: en, label: English
value: de, label: Deutsch
etc.
答案 0 :(得分:6)
看看下面的示例代码。
您可以为每个ListItem指定一个模型,用于存储其他信息。例如,它可以作为表单项的值属性。见http://demo.qooxdoo.org/1.0.x/apiviewer/#qx.ui.form.ListItem
var selectBox = new qx.ui.form.SelectBox();
selectBox.add( new qx.ui.form.ListItem("English", null, "en" ));
selectBox.add( new qx.ui.form.ListItem("Nederlands", null, "nl" ));
var defaultItem = new qx.ui.form.ListItem("Deutsch", null, "de" );
selectBox.add(defaultItem );
selectBox.add( new qx.ui.form.ListItem("français", null, "fr"));
selectBox.add( new qx.ui.form.ListItem("Српски", null, "ru"));
selectBox.setSelection([defaultItem]);
selectBox.addListener("changeSelection", function(e) {
//Read model data from listitem
this.debug("changeSelection: " + e.getData()[0].getModel());
});
答案 1 :(得分:0)
也许这个例子也对你有用:
var sb = new qx.ui.form.SelectBox();
var a = ["English", "Nederlands", "Deutsch", "Français", "Српски"];
var model = new qx.data.Array(a);
var controller = new qx.data.controller.List(model, sb);
controller.setSelection(model.slice(0,3));
最后一行model.slice(0,3)返回带有三个元素的模型的子数组:从“English”到“Deutsch”。默认情况下,此子阵列中的最后一个元素将被“选中”。
有关详细信息,请参阅qooxdoo手册中的“数据绑定”。