2014-10-30 93 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

相关问题