2011-10-04 39 views
1

我正在使用智能gwt 2.5列表網格。 在此我使用複選框簡單selection.below是該代碼:智能Gwt列表網格:如何檢查選定記錄

getGrid().setSelectionAppearance(SelectionAppearance.CHECKBOX); 
     getGrid().setSelectionType(SelectionStyle.SIMPLE); 

我使用的數據源列表grid.For餵養數據調用此方法:

public void setTestData(DataClass[] testData) { 
    setAttribute("testData", testData, true); 
} 

我的網格正在渲染數據正確。現在我想設置檢查一些記錄(行)取決於一些條件。讓我說我想要行號1和5應該檢查。

對於這種把數據輸入數據源之後,我寫的代碼類似下面來檢查數據:

getGrid().selectRecord(1);` 
    getGrid().selectRecord(5); 

但沒有做任何檢查行動,檢查box.I我不是我在做什麼錯點得到。 同樣的事情,當我嘗試了數據源,我喂數據列表網格只是通過setdata它工作。 請幫助我。提前感謝

+0

任何其他選擇記錄的方法也不起作用。 –

回答

4

當您使用數據源(包括clientOnly DataSource)時,獲取數據是異步的,因此您的selectRecord()調用在尚未加載數據時發生。在嘗試選擇記錄之前等待DataArrived。

+0

網格的數據已經加載。之後,我測試我的條件以檢查記錄。 –

+0

數據可能會在瀏覽器中加載並顯示在clientOnly DataSource中,但即使數據存在於瀏覽器中,網格從clientOnly DataSource獲取的操作仍然是異步的。您不需要解決方法,只需使用DataArrived等待數據加載。 –

0

周圍爲我工作的一個工作是: 我刪除選擇的外觀和我的格子選擇的類型和花費的複選框 列象下面這樣:

NTListGridField customCheckBoxField = new NTListGridField("select", "Select", 25); 
     customCheckBoxField.setAlign(Alignment.LEFT); 
     customCheckBoxField.setType(ListGridFieldType.BOOLEAN); 
     customCheckBoxField.setCanFilter(false); 
     customCheckBoxField.setCanEdit(true); 
     customCheckBoxField.setCanToggle(true); 

現在選擇的記錄,

record.setAttribute("select", true); 
+0

這不是一個必要的解決方法,也不會糾正上面提到的問題;最有可能的解決方法是嘗試與其他代碼更改同時實際解決問題。 –