在SmartGWT ListGrid中获取可见列

时间:2014-10-30 07:27:58

标签: java gwt smartgwt listgrid

我正在尝试获取ListGrid中可见列的数量,并在此question中遇到了同样的问题: -

然而,这不起作用。这是我的代码: -

      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真正
companyNameHidden =======真

最后一个不应该是假的。该领域显然是隐藏的。请建议如何查找ListGrid的可见字段数。

2 个答案:

答案 0 :(得分:2)

在您要求它告诉您其字段是否可见之前,您需要绘制listgrid。 有道理,因为如果没有绘制元素,可见状态是不确定的 - 可能/应该返回错误的IMO,但它在框架的实现中返回true。如果在for循环之前添加:listGrid.draw(),您将看到甚至没有打印出companyNameHidden,因为显然,getFields在绘制网格后仅返回可见字段。如果您对特定字段感兴趣,可以使用listGrid.fieldIsVisible(companyNameHidden.getName())

答案 1 :(得分:0)

尝试使用fieldName.getHidden()代替listGrid.fieldIsVisible(...)