2012-02-06 47 views
0

我正在使用SmartGWT 2.5,特別是由RESTDataSource支持的ListGrid。 服務器集成是通過一個servlet實現的,我只需要實現fetchData()。數據是在服務器端填充的List<Map<String, Object>>,轉換爲JSON並在DSResponse中發送。由數據源支持的Live網格通過grid.fetchData()方式以編程方式觸發服務器提取。SmartGWT LiveGrid無法以編程方式將樣式應用於網格記錄

要求: 我希望根據從服務器發送的記錄屬性值之一來設置記錄基礎樣式(或自定義樣式)。 爲了做到這一點,我嘗試了DataArrivedHandler,我遍歷可用的行,使用行號從網格中獲取ListGridRecord,並使用gridRecord.set_baseStyle(String stylename)或gridRecord.setCustomStyle(String stylename)嘗試和應用灰色的CSS記錄。在此之後,我調用grid.markForRedraw(),但不起作用。 CSS沒有得到應用。

我必須提到,我已經使用相同的css來正常listGrid(無數據源)非常成功灰化行。

問題: 我的策略是正確的嗎? 是否有另一種方法根據屬性值將樣式應用於記錄。

+0

看看Hilite,你可以爲你的ListGrid設置一個conditionnal hilites的數組,並且在一個記錄中填充它將會應用hilite的css的條件。 – 2012-02-06 14:55:41

+0

我會與@gpapaz提示一起嘗試此操作並重新開始。 – Shrinivas 2012-02-09 08:31:16

回答

0

您的策略是正確的,我已經在我的代碼中成功實現了您所需的功能。確保您正確地獲取記錄,並確保其中存在測試屬性。我建議一個JSON.encode(record.getJsObj())來查看你的記錄實際上是用什麼來填充的。不需要顯式調用markForRedraw(),因爲在DataArrivedEvent觸發ListGrid之後,將重繪其視圖。如果您需要更多幫助,請發佈一小段代碼片段。同樣從Alain的評論中可以看出,亮點可能是另一個很好的選擇。