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

フィールドが表示されているかどうかを確認する前に、リストグリッドを描画する必要があります。要素が描画されていない場合、可視状態は未定であるため、一種の意味があります-false IMOを返す可能性があります/返す必要がありますが、フレームワークの実装ではtrueを返します。次を追加listGrid.draw()すると、for ループの前に companyNameHidden が出力されないことがわかります。これは、グリッドが描画された後、getFields が表示可能なフィールドのみを返すように見えるためです。listGrid.fieldIsVisible(companyNameHidden.getName())特定の分野に興味がある場合は、 を使用できます。

于 2014-10-31T11:58:22.270 に答える