2011-07-20 5 views
1

私のソフトウェアでは、ユーザーがチェックボックスをクリックしてデータを選択できるように、flextable(データをデータベースから取得して表示)を表示しています。GWT - FlexTableの行でClickHandlerイベントを実装する

//users is the flextable object. 
userCheck = new ClickHandler() { 
     public void onClick(ClickEvent event) { 
      CheckBox src = (CheckBox) event.getSource(); 
      for (int i = 1, n = users.getRowCount(); i < n; i++) { 
       CheckBox box = (CheckBox) users.getWidget(i, 0); 

       if (!box.equals(src)) { 
        box.setValue(false, false); 
       } 
      } 
      removeUserButton.setEnabled(src.getValue()); 
      editUserButton.setEnabled(src.getValue()); 

     } 
    }; 

作品上記のコードが、今私が代わりにチェックボックスでユーザがクリックのアクションを実装しようとしている、私は、ユーザーが行をクリックします(どのテーブルのこれまでのセル)とユーザーが選択した行全体をハイライト表示させます。だから私は、以下のこのコードを実装しますが、これまで、それは動作しません(マウスクリックが、私はまだ色のものを実装するために、まだまし登録されませんように... :()。任意の提案ですか?

userRowCheck = new ClickHandler() { 
     public void onClick(ClickEvent event) { 
      Cell src = users.getCellForEvent(event); 
      int rowIndex = src.getRowIndex(); 
      System.out.println("Cell Selected: userRowCheck Handler, rowIndex: " + rowIndex); 
      //This is just to check if this method is even called out. And well, it doesn't. 
     } 
    }; 

感謝非常に!!!!

答えて

2

あなたはFlexTableにuserRowCheckを追加した場合:。それが動作するはずmyFlexTable.addClickHandler(userRowCheck);ちょうどあなたがセルにウィジェットを置き、その上のユーザーがクリックしなかった場合ので、あなたは、nullためsrcをテストすることを確認してくださいセル返すnull

+0

ありがとう、私はusers.addClickHandler(userRowCheck)を試みたが、もし私が私はflextable .....任意のアイデアを開くしようとすると、プログラムが凍結を追加? – 404Error

+0

「開く」(データを追加するか?をクリックする)の意味は不明ですが、ブラウザによってはFlexTableが特定のブラウザ(IEなど)で遅くなることが知られています。実際にFlexTableの速度であるかどうかを確認するためにグリッドを試してみることもできます。 –

関連する問題