我正在使用GWT 1.6。在用作表格單元的面板中的按鈕中獲取事件
我正在創建一個面板,其中包含一個Button和一個標籤,然後我將它添加到FlexTable作爲其單元之一。
該按鈕沒有收到任何Click事件。我發現表格支持確定單擊哪個單元格,但在這種情況下,我希望鼠標事件傳播到單元格內的各種小部件。任何想法如何做到這一點?
我正在使用GWT 1.6。在用作表格單元的面板中的按鈕中獲取事件
我正在創建一個面板,其中包含一個Button和一個標籤,然後我將它添加到FlexTable作爲其單元之一。
該按鈕沒有收到任何Click事件。我發現表格支持確定單擊哪個單元格,但在這種情況下,我希望鼠標事件傳播到單元格內的各種小部件。任何想法如何做到這一點?
是的,我也碰到過 - 表中沒有小工具會收到事件。最後我用這樣的代碼:
FixedWidthGrid dataTable = createDataTable();
...
dataTable.addTableListener(new TableListener() {
public void onCellClicked(SourcesTableEvents sender, int row, int cell) {
storyViewer.showStory(table.getRowValue(row));
}
});
你也許可以用類似的東西開始,然後以編程方式將事件發送到您的按鈕控件,使點擊的出現。
如果你知道你的表有多大,將使用網格來代替。所有的小部件都會收到相關事件。我已經完成了這個並創建了我自己的可排序表格。
您必須繼承Button google類並添加一個帶有兩個附加參數(int col,int row)的構造函數。 例如
public class RuleButton extends Button {
private int row;
private int col;
public RuleButton(String html, ClickListener listener, int row, int col) {
super(html, listener);
setRow(row);
setCol(col);
}
// getters and setters for row and col attributes.
}
添加按鈕時,調用此構造函數並將行和列索引傳遞給它。
最終會在單元格中有多個可點擊的小部件。我想實現的是一個表頭,它有一個按鈕來排序和另一個按鈕來設置一個過濾器。所以我必須知道用戶實際上在單元格內點擊了哪些Widgets。 – mjeffw 2009-07-08 17:36:28
嗯。所以,你需要知道點擊的位置。不知道那裏有 - 可能是。順便說一句 - 你使用的是FixedWidthGrid嗎?它支持排序。 – 2009-07-08 18:14:27