GWT 2.7 和 GWT Material 设计 1.5.3 DatePicker
GWT 2.7 and GWT Material Design 1.5.3 DatePicker
我尝试使用 MaterialButton 在屏幕上显示日历窗格。我有这样的代码:
@UiField
MaterialDatePicker editDateCtrl;
@UiField
MaterialButton addDateCtrl;
@UiHandler("addDateCtrl")
void onClick(ClickEvent ev) {
// GQuery.console.log(GQuery.$(ev.getSource()).siblings(".input-field"));
// GQuery.$(ev.getSource()).siblings(".input-field").first().find("input").click();
// GQuery.$(this.editDateCtrl.getElement());
// GQuery.$("#gwt-debug-actionBtn").click();
editDateCtrl.fireEvent(new FocusEvent() {});
}
我尝试使用焦点事件、点击事件,但没有任何效果。使用普通 JavaScript (jQuery) 获取元素并调用 obj.click()
/obj.focus()
也不会给出任何结果。此控件的 API 甚至不包含方法 show()
或类似的东西(不在我当前使用的版本中)。
我不得不使用 GQuery/JSNI。 MaterialDatePicker 包含一个输入元素,它的属性 aria-owns 由我想显示的日历弹出窗口的 id 赋值。为了让弹窗出现,你需要给它添加一些样式。
代码如下:
String pickerId = GQuery.$(editDateCtrl).find("input").attr("aria-owns");
GQuery.$("#" + pickerId).addClass("picker--focused picker--opened");
GQuery.$("#" + pickerId).attr("aria-hidden", false);
我尝试使用 MaterialButton 在屏幕上显示日历窗格。我有这样的代码:
@UiField
MaterialDatePicker editDateCtrl;
@UiField
MaterialButton addDateCtrl;
@UiHandler("addDateCtrl")
void onClick(ClickEvent ev) {
// GQuery.console.log(GQuery.$(ev.getSource()).siblings(".input-field"));
// GQuery.$(ev.getSource()).siblings(".input-field").first().find("input").click();
// GQuery.$(this.editDateCtrl.getElement());
// GQuery.$("#gwt-debug-actionBtn").click();
editDateCtrl.fireEvent(new FocusEvent() {});
}
我尝试使用焦点事件、点击事件,但没有任何效果。使用普通 JavaScript (jQuery) 获取元素并调用 obj.click()
/obj.focus()
也不会给出任何结果。此控件的 API 甚至不包含方法 show()
或类似的东西(不在我当前使用的版本中)。
我不得不使用 GQuery/JSNI。 MaterialDatePicker 包含一个输入元素,它的属性 aria-owns 由我想显示的日历弹出窗口的 id 赋值。为了让弹窗出现,你需要给它添加一些样式。
代码如下:
String pickerId = GQuery.$(editDateCtrl).find("input").attr("aria-owns");
GQuery.$("#" + pickerId).addClass("picker--focused picker--opened");
GQuery.$("#" + pickerId).attr("aria-hidden", false);