2013-05-07 26 views
4

我使用自定義數據網格從GWT展示例如加上celltable的子行一個clickHandler事件.. http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCustomDataGrid如何在GWT

每一件事工作正常..我必須在我的小區裏面的行子行表..

我有錨小區..這是主要的行和子行..

ClickHandler主行工作,但不是在副行..

這是 我該小區

// ViewDetail. 
td = row.startTD(); 
td.className(cellStyles); 
td.style().trustedColor("blue"); 
td.style().cursor(Cursor.POINTER); 

if (isNetworkRow) { 
    //td.text("subRowsAnchor"); 
} else { 

} 
renderCell(td, createContext(19), viewDetailsColumn, rowValue); 

我渲染單元在這兩種情況下,無論是其行或副行 這樣我就可以看到錨和它的clickHandler事件也適用代碼..

有什麼辦法我可以區分哪個錨點被點擊,主要行或子行。

我只是試圖做一個小的工作。即改變錨文本如果一個副行..名稱爲u可以在c在我的代碼.. td.text ..

但隨後得到renderCell錯誤...

屬性不能添加HTML或添加子元素後添加。

任何想法,這可能是解決方案...

感謝

回答

1

爲了區分它們之間行已被點擊(根據展示的樣品,而應該在一般的一樣),只是依靠哪一行被選中(前提條件是你沒有覆蓋/禁止選擇處理)。

設置一個FieldUpdater到列(使用您的錨點單元呈現它自己)並使用getKeyboardSelectedSubRow()檢查子選擇。例如:

yourColumn.setFieldUpdater(new FieldUpdater<T, String>() { 
    public void update(int index, T object, String value) { 
    if (yourGrid.getKeyboardSelectedRow() != -1) { 
     if (yourGrid.getKeyboardSelectedSubRow() > 0) { 
     // Subrow selected. 
     } else { 
     // Main row selected. 
     } 
    } 
    } 
});