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

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

最佳答案

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

09-11 19:38