簡體   English   中英

單擊底部 vaadin 上的處理程序

[英]click handler on bottom vaadin

我需要為表格中的一列添加一個點擊處理程序,所以如果表格有 3 行,我需要為每一行添加一個點擊處理程序; 但我還需要向點擊處理程序添加一個值(以允許我區分行); 換句話說:

我有這個clickHandler:

btnElimina.addClickListener(new Button.ClickListener() {

                @Override
                public void buttonClick(ClickEvent event) {
                    System.out.println( "nell handler  " );
                }
            }); 

我應該想要一些東西,像這樣:

btnElimina.addClickListener(new Button.ClickListener(String Val) {

                @Override
                public void buttonClick(ClickEvent event) {
                    System.out.println( "nell handler con "+ val );
                }           });

那可能嗎? 我用谷歌搜索了它,但沒有找到解決方案; 此外,如果我嘗試使用 ClickEvent,似乎沒有什么可以用來區分行;

感謝幫助

對於 Vaadin 7,您可以在“表中的組件”部分的官方文檔中找到示例。 TLDR:您可以使用組件中的setData() / getData()來傳遞識別信息。

相關部分在這里:

Table table = new Table();
table.addStyleName("components-inside");

table.addContainerProperty("Details",        Button.class,    null);

/* Add a few items in the table. */
for (int i=0; i<100; i++) {
    // The Table item identifier for the row.
    Integer itemId = new Integer(i);

    // Create a button and handle its click. A Button does not
    // know the item it is contained in, so we have to store the
    // item ID as user-defined data.
    Button detailsField = new Button("show details");
    detailsField.setData(itemId);
    detailsField.addClickListener(new Button.ClickListener() {
        public void buttonClick(ClickEvent event) {
            // Get the item identifier from the user-defined data.
            Integer iid = (Integer)event.getButton().getData();
            Notification.show("Link " +
                              iid.intValue() + " clicked.");
        }
    });
    // Create the table row.
    table.addItem(new Object[] {detailsField},
                  itemId);
}

我以這種方式解決了這個問題:

public class TableListe extends CustomComponent implements Button.ClickListener{
    
    private String istituto;
    
    public TableListe(String ista) {
        //super();      
        this.istituto = ista;
    }

    @Override
    public void buttonClick(ClickEvent event) {
        System.out.println( "  nell handler con this.istituto " + this.istituto);   
    }
}

它現在似乎有效;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM