ComboBox中的CheckBox

时间:2014-09-25 14:41:19

标签: qooxdoo

我想在一个comboBox中有checkBoxes,就像在这个简化的例子中一样:

var rawData = [];
for (var i = 0; i < 20; i++) {
    rawData.push(i);;
}  
var data = new qx.data.Array(rawData);

var list = new qx.ui.form.ComboBox();
list.setWidth(150);

this.getRoot().add(list);

var controller = new qx.data.controller.List(null, list);

var delegate = {
    createItem : function() {
    return new qx.ui.form.CheckBox();
    }
};

controller.setDelegate(delegate);

controller.setModel(data);

它正在工作,但我无法“检查”复选框,因为当我点击它时组合框关闭,所以我想只用按钮打开/关闭组合框。 怎么做?提前谢谢。

1 个答案:

答案 0 :(得分:0)

ComboBox的某些事件负责在点击进入底层复选框之前关闭PopUp(请参阅code on GitHub)。如果你实现了自己的ComboBox并覆盖了close方法,那就可以了。

qx.Class.define("foo.ComboBox", {
  extend: qx.ui.form.ComboBox,
  members: {
    close: function() {
    }
  }
})

var rawData = [];
for (var i = 0; i < 20; i++) {
    rawData.push(i);;
}  
var data = new qx.data.Array(rawData);

var list = new foo.ComboBox();
list.setWidth(150);

var controller = new qx.data.controller.List(null, list);
var delegate = {
    createItem : function() {
    return new qx.ui.form.CheckBox();
    }
};
controller.setDelegate(delegate);
controller.setModel(data);

this.getRoot().add(list);

但是现在您必须考虑如何处理多个复选框以及何时关闭弹出窗口。