我想在一个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);
它正在工作,但我无法“检查”复选框,因为当我点击它时组合框关闭,所以我想只用按钮打开/关闭组合框。 怎么做?提前谢谢。
答案 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);
但是现在您必须考虑如何处理多个复选框以及何时关闭弹出窗口。