사용자 정의 listitem보기를 작성했습니다 (기반은 http://news.qooxdoo.org/tutorial-part-4-2-custom-widgets-4).qooxdoo - 사용자 정의 목록 위젯 선택
이 목록의 선택 항목에 문제가 있습니다. 첫 번째 요소는 항상 선택됩니다 (목록에서 어떤 요소를 클릭하든 관계 없음).
문제를 해결하려면 어떻게해야합니까? 내가 그것을 사용하는 방법 여기
qx.Class.define("project.MyView", { extend : qx.ui.core.Widget, include : [qx.ui.form.MModelProperty], construct : function() { this.base(arguments); var layout = new qx.ui.layout.Grid(4, 2); layout.setColumnFlex(1, 1); this._setLayout(layout); this._createChildControl("icon"); this._createChildControl("date"); this._createChildControl("description"); }, properties : { appearance : { refine : true, init : "listitem" }, icon : { check : "String", apply : "_applyIcon", nullable : true }, date : { check : "String", apply : "_applyDate", nullable : true }, description : { check : "String", apply : "_applyDescription", nullable : true } }, members : { _createChildControlImpl : function(id) { var control; switch (id) { case "icon": control = new qx.ui.basic.Image(this.getIcon()); control.setAnonymous(true); this._add(control, { row : 0, column : 0, rowSpan : 2 }); break; case "date": control = new qx.ui.basic.Label(this.getDate()); control.setAnonymous(true); this._add(control, { row : 0, column : 2 }); break; case "description": control = new qx.ui.basic.Label(this.getDescription()); control.setAnonymous(true); control.setRich(true); this._add(control, { row : 0, column : 1 }); break; } return control || this.base(arguments, id); }, _applyIcon : function(value, old) { var icon = this.getChildControl("icon"); icon.setSource(value); }, _applyDescription : function(value, old) { var description = this.getChildControl("description"); description.setValue(value); }, _applyDate : function(value, old) { var date = this.getChildControl("date"); date.setValue(value); } }, destruct : function() { } });
... 그리고 : : 문제는 bindItem 함수처럼
this.list = new qx.ui.form.List(); this.listController = new qx.data.controller.List(null, this.list); this.listController.setDelegate({ createItem : function() { return new project.MyView(); }, bindItem : function(controller, item, id) { controller.bindProperty("description", "description", null,item, id); controller.bindProperty("icon", "icon", null, item, id); controller.bindProperty("date", "date", null, item, id); }, configureItem : function(item) { item.getChildControl("icon").setWidth(48); item.getChildControl("icon").setHeight(48); item.getChildControl("icon").setScale(true); item.setMinHeight(52); } });
감사합니다. – tchudyk