我使用以下内容:
var list = [];
lin = new gui.AWindow();
Len = list.length;
lin.add(Len+1);
list[Len] = "close button";
多次在窗口中生成新的按钮行。单击按钮给出行号时,我想要事件处理程序。
qx.Class.define("gui.AWindow",
{
extend : qx.ui.window.Window,
events :
{
"execute" : "qx.event.type.Data"
},
members :
{
add : function()
{
closeButton = new qx.ui.toolbar.Button("CLOSE");
lin.add(closeButton,{row: Pos+1, column: 0});
closeButton.addListener("execute", function(e)
{
this.debug(e.getData());
}, this);
}
},
construct : function()
{
this.base(arguments, "gui");
// hide the window buttons
this.setShowClose(false);
this.setShowMaximize(false);
this.setShowMinimize(false);
//adjust size
this.setWidth(250);
this.setHeight(300);
var layout = new qx.ui.layout.Grid(0, 0);
this.setLayout(layout);
}
});
答案 0 :(得分:0)
如果使用qx.data.Array而不是使用标准JS列表,则可以使用indexOf方法查找数组中按钮的索引。
在事件处理程序中,您可以使用qx.event.type.Event.getTarget()方法获取对触发事件的窗口小部件的引用,并将其传递给indexOf方法。