2

我正在尝试获取 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=======true
lastName=======true
companyName=======true
companyNameHidden=======true

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

4

2 回答 2

2

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

于 2014-10-31T11:58:22.270 回答
0

尝试使用fieldName.getHidden()而不是listGrid.fieldIsVisible(...).

于 2014-10-31T11:05:04.713 回答