GWT-在DatePicker中单击当天的事件

GWT-在DatePicker中单击当天的事件,gwt,click,datepicker,Gwt,Click,Datepicker,在GWT中,我希望处理click事件,但仅当用户在某一天单击时。 有一个valueChangeHandler,但它在值更改时启动,所以当我在同一天单击两次时,它将启动一次 另一个选项是使用addHandler或addDomHandler,我可以在其中添加ClickHandler,但无论我单击某一天或是否传递到其他月份,它都会激发 这两个选项对我来说都不起作用。 有什么办法吗?首先,你应该描述更多细节。我不知道你到底想做什么。 这是我的建议 (1) 。用于保存当前使用用户的信息,并将expire

在GWT中,我希望处理click事件,但仅当用户在某一天单击时。 有一个valueChangeHandler,但它在值更改时启动,所以当我在同一天单击两次时,它将启动一次

另一个选项是使用addHandler或addDomHandler,我可以在其中添加ClickHandler,但无论我单击某一天或是否传递到其他月份,它都会激发

这两个选项对我来说都不起作用。
有什么办法吗?

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

(1) 。用于保存当前使用用户的信息,并将expire day设置为1day

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

private CloseHandler handler;
.......
        if (handler == null) {
        handler = new CloseHandler<PopupPanel>() {
            public void onClose(final CloseEvent<PopupPanel> event) {
                ........
            }
        };
    }
私有CloseHandler;
.......
if(handler==null){
handler=newclosehandler(){
公开作废一次关闭(最终关闭事件){
........
}
};
}
(3) 。您还可以使用简单的处理程序,如果触发事件,则使用当前时间和唯一值(例如:登录用户序列等)保存在映射中。再次点击后,您将重试并匹配当前和上一次的时间


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

(1) 。用于保存当前使用用户的信息,并将expire day设置为1day

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

private CloseHandler handler;
.......
        if (handler == null) {
        handler = new CloseHandler<PopupPanel>() {
            public void onClose(final CloseEvent<PopupPanel> event) {
                ........
            }
        };
    }
私有CloseHandler;
.......
if(handler==null){
handler=newclosehandler(){
公开作废一次关闭(最终关闭事件){
........
}
};
}
(3) 。您还可以使用简单的处理程序,如果触发事件,则使用当前时间和唯一值(例如:登录用户序列等)保存在映射中。再次点击后,您将重试并匹配当前和上一次的时间


这对您很有用。

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

     dateBox.addHandler(new ClickHandler() {

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

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

     dateBox.addHandler(new ClickHandler() {

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

使用addvalueChangeHandler,然后将该值设置为其他值。这是一个骇客,但它对我有效

calendarWidget.addValueChangeHandler(新的ValueChangeHandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
calendarWidget.setValue(新日期(0));
} 
}

使用addvalueChangeHandler,然后将该值设置为其他值。这是一种黑客行为,但对我来说很有效

calendarWidget.addValueChangeHandler(新的ValueChangeHandler(){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
calendarWidget.setValue(新日期(0));
} 
}

抱歉..我说的是名为DatePicker的小部件(类似日历)我想在用户点击它时处理事件,但仅当他点击一天时。例如,我有这个小部件。用户点击一天,我会给他显示一些弹出窗口。当他点击小部件时,但不是在一天。例如,当他转到下个月时,我不会显示弹出窗口。哦!对不起。现在我知道你的意思是com.google.gwt.user.datepicker.client.DateBox。你有两个选择。(1)点击或关注DateBox小部件(2)。点击DateBox wiget弹出窗口中的日期。我说的对吗?这可能对你有用。对不起。我说的是名为DatePicker的小部件(类似日历)我想在用户点击它时处理事件,但仅当他点击一天时。例如,我有这个小部件。用户点击一天,我会给他显示一些弹出窗口。当他点击小部件时,但不是在一天。例如,当他转到下个月时,我不会显示弹出窗口。哦!对不起。现在我知道你的意思是com.google.gwt.user.datepicker.client.DateBox。您有两个选项。(1)单击或关注DateBox小部件(2)。单击DateBox wiget弹出窗口中的日期。我说的对吗?。这可能对您有用。上述解决方案不起作用。单击选择日期的事件不会被触发。上述解决方案不起作用。单击选择日期的事件不会被触发。