listcell XUL中的按钮

时间:2011-09-22 16:30:41

标签: javascript xul

有没有办法让listcell中的按钮在XUL中工作?我不确定是什么阻止了它的运行。 XUL看起来像:

<listitem id = "1">
    <listcell label = "OK Computer"/>
    <listcell label = "Radiohead"/>
    <listcell label = "1997"/>
    <listcell label = "Platinum"/>
    <listcell label = "5/5"/>
    <listcell label = "Alternative Rock"/>  
    <button label = "Edit" oncommand= "alert('Hello World');"/>
    <button label = "Delete" oncommand = "deleteItem();"/>  
</listitem>

按钮在列表外部工作正常,但是当它在列表中时,我的鼠标指针甚至不能将其识别为按钮(通过更改为手形指针)。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您需要将按钮放在列表单元格中:

<listcell>
  <button label="Edit" oncommand="alert('Hello World');"/>
</listcell>

列表单元格可以具有默认内容(如果您只是添加label属性而没有内容也可以获得)或者您想要的任何内容 - 但对于后者,您实际上必须将内容放入明确显示<listcell>标记。

编辑:实际上,更重要的问题是<listbox>相对于其内容受到限制,它主要限于纯文本。这就是为什么开发了更通用的<richlistbox>小部件的原因。但它不支持表格内容。

答案 1 :(得分:0)

按钮和其他控件元素可以在标准的listitem中使用,不需要使用richlistbox或tree。神奇的技巧是allowevents属性。您可能还希望将按钮包装在listcell本身中,以便它们获得自己的列。

<listitem id="1" allowevents="true">
    <listcell label="OK Computer"/>
    <listcell label="Radiohead"/>
    <listcell label="1997"/>
    <listcell label="Platinum"/>
    <listcell label="5/5"/>
    <listcell label="Alternative Rock"/>  
    <listcell>
        <button label="Edit" oncommand="alert('Hello World');"/>
        <button label="Delete" oncommand="deleteItem();"/>  
    </listcell>
</listitem>