2013-07-31 28 views
0

GXT3編輯 - 網格:添加列與按鈕來修改行中編輯的網格GXT3 - 可編輯網格:顯示行到在彈出

在該示例中,選擇線時的線是可編輯自動。 http://www.sencha.com/examples/#Exam...oweditablegrid

我希望當我點擊編輯按鈕,將出現在彈出窗口中的行被改變。

TextButtonCell button = new TextButtonCell(); 
    button.addSelectHandler(new SelectHandler() { 

     @Override 
     public void onSelect(SelectEvent event) { 
     Context c = event.getContext(); 

     Info.display("Event", "Call the popup here."); 
     } 
    }); 
    nameColumn.setCell(button); 

有沒有辦法得到這個?

在此先感謝您的幫助。

回答

0

首先,你有喲創建一個TextBoxCell列,你可能已經創建。 然後,您必須禁用網格的默認onclick可編輯行爲。

對於Sencha示例文件RowEditingGridExample.java,您可以覆蓋onClick事件並阻止觸發默認代碼。

public class RowEditingGridExample extends AbstractGridEditingExample { 

    @Override 
    protected GridEditing<Plant> createGridEditing(Grid<Plant> editableGrid) { 
     return new GridRowEditing<Plant>(editableGrid){ 

     @Override 
     protected void onClick(ClickEvent event) { 
      } 
     }; 
    } 

} 

而當你點擊textBoxCell點擊處理程序,你可以開始手動編輯。

TextButtonCell button = new TextButtonCell(); 
button.addSelectHandler(new SelectHandler() { 

    @Override 
    public void onSelect(SelectEvent event) { 
    Context c = event.getContext(); 

    //Here you can pass a new GridCell like with proper cell index and row index. 

    GridCell cell = new GridCell(getRowIndex(), getCellIndex()); 
    editing.startEditng(cell); 

    } 
}); 
nameColumn.setCell(button); 

如果你想在單獨的彈出窗口中出現行編輯器,你必須手動設計它。

+0

如果你已經在使用'GridRowEditing',它會在你點擊的任何地方自動執行'startEditing'(除了按鈕,因爲它處理了點擊) - 我認爲提問者希望它只*編輯,如果你點擊按鈕... –

+0

@ColinAlworth這就是爲什麼我重寫'onclick'事件並停止該默認行爲。 –

+0

好吧,夠公平的,但爲什麼要構建所有這些,而不是*要求彈出一個類似問題的彈出窗口? –