2014-09-25 55 views
0

我想有複選框組合框裏面,像這樣簡單的例子:複選框

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

ComboBox的某些事件負責關閉PopUp(請參閱code on GitHub),然後點擊可以到達基礎複選框。如果你實現你自己的ComboBox並覆蓋它的關閉方法。

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); 

但是現在您必須考慮如何處理多選複選框以及何時關閉彈出窗口。