0
我有一個數據表,我添加了一個面板,其中包含一個單元格中的複選框。我有另一個面板有一個複選框,我用它來選擇數據表中的所有複選框。 Select All由JQuery完成,JQuery位於下面的代碼中。如何在我的JQuery Select All複選框被選中時調用onclick或onchange事件?我試過使用下面的AjaxCheckBox,但事件沒有被調用。Wicket複選框onUpdate沒有被調用JQuery更改檢查狀態
private static List<CheckBox> checkBoxes = new ArrayList<CheckBox>();
private static class ActionsPanel extends Panel {
public ActionsPanel(String id, IModel<WorkOrderCustomer> model, final String uuid) {
super(id);
AjaxCheckBox checkBox = new AjaxCheckBox("checkbox", Model.of(Boolean.FALSE)) {
private static final long serialVersionUID = 1L;
@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
tag.append("class", uuid, " ");
}
@Override
protected void onUpdate(AjaxRequestTarget target) {
if(getModelObject() == true) {
checkBoxes.add(this);
} else {
checkBoxes.remove(this);
}
}
};
add(checkBox);
}
}
private static class ActivityPanel extends Panel {
private final String selectCheckboxJS = "if($(this).attr('checked') == 'checked') {var val=true;} else {var val=false;}$('." +
uuid + "').each(function() { $(this).attr('checked', val); });"
private static final long serialVersionUID = 1L;
@Inject
private Dao dao;
private DropDownChoice<String> activities;
public ActivityPanel(String id, final String selectCheckboxJS, FilterForm form) {
addActivitySwitchPanel(selectCheckboxJS, form);
}
private void addActivitySwitchPanel(final String selectCheckboxJS, FilterForm form) {
CheckBox checkAll = new CheckBox("checkAll");
checkAll.add(new ChangeActivitySearchBehavior() {
@Override
public void onComponentTag(Component component, ComponentTag tag) {
tag.put("onclick", selectCheckboxJS);
}
});
SubmitLink changeActivityLink = new SubmitLink("activityLink", form);
add(checkAll);
add(changeActivityLink);
}
}
謝謝你。我非常想知道我必須通過wickets來解決這個問題,我甚至沒有想過試試jQuery。在最初設計時,我確實考慮過GroupSelector,但由於我們構建的類沒有經過一些時髦的重新設計,因此我沒有直接處理這些複選框。 – Chris