Java 获取SmartGWT ListGrid中的可见列

Java 获取SmartGWT ListGrid中的可见列,java,gwt,smartgwt,listgrid,Java,Gwt,Smartgwt,Listgrid,我试图获取ListGrid中可见列的数量,但在这方面遇到了相同的问题:- 然而,这不起作用。这是我的密码:- ListGridField firstName=new ListGridField("firstName","First Name"); ListGridField lastName=new ListGridField("lastName","Last Name"); ListGridField companyName=new ListGridFiel

我试图获取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())); 
      }
输出为:-

名字=true
lastName=true
公司名称========true
companyNameHidden=true


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

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

ListGridField
没有
getHidden
方法。您使用的是哪个版本的smartgwt?最近有:谢谢!成功了。您可能认为每个字段都应该返回false,因为没有绘制任何内容。无论如何,我使用了getAllFields,它将返回所有字段(也隐藏)。