簡體   English   中英

GWT單元格表單擊新行可得到先前選擇的行的值

[英]GWT Cell Table Clicking on a new row gives value of Previously selected row

在GWT 2.6 CellTable中,我正在編寫一個單擊事件以執行某些操作。 單擊“ CellTable行”時,我無法獲得正確的行索引; 只有雙擊事件才能正確返回該行。

final SingleSelectionModel<PatientDTO> selectionModel = 
    new SingleSelectionModel<PatientDTO>();

patientsTable.setSelectionModel(selectionModel);  

patientsTable.addDomHandler(new ClickHandler()  
{  
    @Override  
    public void onClick(ClickEvent event)  
    {
        PatientDTO selected = selectionModel.getSelectedObject();
        if (selected != null) 
        {
            RootLayoutPanel.get().clear();
            RootLayoutPanel.get().add(new PatientPanel(selected));
        }
    }
}, ClickEvent.getType());

使用SingleSelectionModelMultiSelectionModel並在上面添加SelectionChangeHandler ,當在CellTable更改選擇時將觸發該CellTable

樣例代碼:

final SingleSelectionModel<Contact> selectionModel = new SingleSelectionModel<Contact>();
//final MultiSelectionModel<Contact> selectionModel = new MultiSelectionModel<Contact>();
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {

    @Override
    public void onSelectionChange(SelectionChangeEvent event) {
        Set<Contact> selected = selectionModel.getSelectedSet();
        if (selected != null) {
            for (Contact contact : selected) {
                System.out.println("You selected: " + contact.name);
            }
        }
    }
});

或者,也可以嘗試使用CellPreviewHandler

table.addCellPreviewHandler(new Handler<Contact>() {

    @Override
    public void onCellPreview(CellPreviewEvent<Contact> event) {
        int row = event.getIndex();
        int column = event.getColumn();

        if ("focus".equals(event.getNativeEvent().getType())) {
           //..
        }
        if ("blur".equals(event.getNativeEvent().getType())) {
            //...
        }
        if ("mousedown".equals(event.getNativeEvent().getType())) {
            //..
        }
        if ("mouseover".equals(event.getNativeEvent().getType())) {
            //..
        }
    }

});

暫無
暫無

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

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