GWT - 在DatePicker中单击活动

时间:2013-05-21 17:10:23

标签: gwt click datepicker

在GWT中,我想处理点击事件,但仅限用户点击一天。 有一个valueChangeHandler但它会在值改变时触发,所以当我在同一天点击两次时它会触发一次。

其他选项是使用addHandler或addDomHandler,我可以在其中添加ClickHandler,但无论是我点击一天还是传递到其他月份,它都会一直触发。

对我来说这两个选项都不起作用。 任何想法怎么做?

3 个答案:

答案 0 :(得分:1)

然后使用addvalueChangeHandler将值设置为其他值。这是一个黑客,但它适用于我。

calendarWidget.addValueChangeHandler(new ValueChangeHandler<Date>() {
  @Override
    public void onValueChange(ValueChangeEvent<Date> event) {
      calendarWidget.setValue(new Date(0));
    } 
 }

答案 1 :(得分:0)

首先,您应该描述更多细节。我不知道你到底想要做什么。 这是我的建议。

(1)。使用Cookies保存当前用户的信息,并将过期日设置为1天。

(2)。不要使用addNewHandler。您应该使用一个处理程序实例的全局变量并将其初始化为NULL。首先,你会被初始化它。这可能只创建一次,你可以检查它是否为NULL。例如:

private CloseHandler handler;
.......
        if (handler == null) {
        handler = new CloseHandler<PopupPanel>() {
            public void onClose(final CloseEvent<PopupPanel> event) {
                ........
            }
        };
    }

(3)。您也可以使用简单的处理程序,如果触发事件,则使用当前时间和唯一值(例如:登录user.etc的序列)保存在 Map 中。再次点击它之后,你会检索并匹配当前和之前的时间。

对你有用..

答案 2 :(得分:0)

您还可以在DateBox.getDatePicker()和DateBox.getTextBox()上添加处理程序。 您可以像这样添加其他处理程序......

     dateBox.addHandler(new ClickHandler() {

     public void onClick(ClickEvent event) {
     Window.alert("click"); 
     }
     }, ClickEvent.getType());