2014-10-30 94 views
2

我試圖讓ListGrid可見的列數,並在此question在同樣的問題就來了: -獲得在SmartGWT的可見列ListGrid

然而,這是行不通的。這裏是我的代碼: -

 ListGridField firstName=new ListGridField("firstName","First Name"); 
     ListGridField lastName=new ListGridField("lastName","Last Name"); 
     ListGridField companyName=new ListGridField("companyName","Company Name"); 
     ListGridField companyNameHidden=new ListGridField("companyNameHidden","Company Name"); 
     firstName.setWidth(200); 
     lastName.setWidth(200); 
     companyName.setWidth(200); 
     companyNameHidden.setWidth(200); 
     companyNameHidden.setHidden(true); 
     listGrid.setFields(firstName,lastName,companyName,companyNameHidden); 

     for(ListGridField fieldName:listGrid.getFields()){ 
      System.out.println(fieldName.getName()+"======="+listGrid.fieldIsVisible(fieldName.getName())); 
     } 

輸出是: -

的firstName =======真正
lastName的=======真正
的companyName ===== == true
companyNameHidden ======= true

不應該是最後一個錯誤。該領域顯然隱藏。請建議如何查找ListGrid的可見字段數。

回答

2

在你要求它告訴你,如果它的字段是可見的,你需要繪製listgrid。 類型是有道理的,因爲如果一個元素沒有繪製,可見狀態是未定的 - 可以/應該返回錯誤的IMO,但它在框架的實現返回true。如果在for循環之前添加:listGrid.draw(),則會看到companyNameHidden甚至沒有打印出來,因爲很明顯,getFields在繪製網格後僅返回可見的字段。如果您對特定領域感興趣,您可以使用listGrid.fieldIsVisible(companyNameHidden.getName())

+0

謝謝!有效。你會認爲它應該爲每個領域返回false,因爲沒有任何東西被繪製。無論如何,我用getAllFields,它會返回,所有的領域(隱藏太)。 – 2014-10-31 12:17:11

0

請使用fieldName.getHidden()而不是listGrid.fieldIsVisible(...)來嘗試。

+0

'ListGridField'沒有'getHidden'方法。 – 2014-10-31 11:07:50

+0

您正在使用哪個版本的smartgwt?最新有:http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/widgets/grid/ListGridField.html#getHidden() – 2014-10-31 11:58:55

相關問題