Qooxdoo表单元素和getSelection()

时间:2010-02-24 22:26:10

标签: qooxdoo

这是我的代码:

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.

2 个答案:

答案 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手册中的“数据绑定”。