4

私の要件に従って、ユーザーがこのカスタム リスト ボックスから日付を選択できるように 3 つのリスト ボックスを表示するカスタム パネルを作成しました。これらの 3 つのリスト ボックスは、月、日、年の値を表示する役割を果たします。ここで、3 つのリスト ボックスを編集可能にすると同時に選択可能にしたいと考えています。つまり、日付を編集できると同時に選択できるユーザー設定を提供したいと考えています。GWTでこれを行うにはどうすればよいですか。ここでは GWT2.0 を使用しています。どなたかアイデアをください。

4

3 に答える 3

2

ブラウザはそのような制御を提供しません。GWTもそうではありません。独自にコーディングする必要があります。EXT-GWT(無料ではありません)ComboBoxにはこの機能があります。http://www.extjs.com/examples/ Smart GWTも同様です(無料ではありません)http://www.smartclient.com/smartgwt/showcase/#styled_combobox_category

自分でロールする場合は、TextBox(またはその一部)がクリックされたときに表示されるTextBoxとVerticalPanelを持つCompositeから始めます。パネルにはクリック可能なアイテムが含まれます。

于 2010-05-25T06:57:59.677 に答える
1

リストボックスの代わりにsuggestBoxを使用して解決できます。ただし、ユーザーはリストを表示するために入力を開始する必要があります。

于 2010-05-26T09:46:16.090 に答える
0

絶対パネルを使用して同じことを達成できます...以下はコードスニペットです。

テキストボックスを使用して選択ボックスを非表示にし、テキストボックスの幅と位置を調整して、ドロップダウンリストをカバーするようにします...

final AbsolutePanel absolute_panel_edit_list = new AbsolutePanel();
final TextBox onhold_textbox = new TextBox();
final ListBox onhold = new ListBox();

for (int onholdcount = 0; onholdcount < onHoldTypes.length; onholdcount++)
{
   onhold.addItem(onHoldTypes[onholdcount]);
}

onhold.addKeyPressHandler(new KeyPressHandler()
{       
   @Override
   public void onKeyPress(KeyPressEvent event) 
   {
      onhold_textbox.setStyleName("onhold_textbox");
      absolute_panel_edit_list.add(onhold,0,8);
      absolute_panel_edit_list.add(onhold_textbox,1,10);
      absolute_panel_edit_list.setSize("142px", "35px");

      flex_row4.removeCell(4, 9);
      flex_row4.setWidget(4, 9, absolute_panel_edit_list);
      onhold_textbox.addMouseOutHandler(new MouseOutHandler() 
      {        
         @Override
         public void onMouseOut(MouseOutEvent event) 
         {
            String customized_time = onhold_textbox.getText();
            int no_of_elements = onhold.getItemCount();
            onhold.addItem(customized_time);
            onhold.setSelectedIndex(no_of_elements);
            flex_row4.removeCell(4, 9);
            flex_row4.setWidget(4, 9, onhold);
            flex_row4.setWidget(4, 11, completed_togglebutton);
            flex_row4.setWidget(4, 13, completed_label);      
         }
      });
   }
});
于 2010-07-06T11:31:24.827 に答える