0

私は改札を初めて使用し、jQuery をまったく知りません。私はウィケット6.9.0を使用しています。すべてのチェックボックスの選択/選択解除をウィケット DataTable に追加する必要があります。「Apache Wicket Cookbook」の例を読んで実装しました。28 ページのApache Wicket Cookbook で確認できます。チャプター 5 ですが、すべての選択を解除しても機能しません。ここの提案も読みました: http://evanchooly.com/logs/%23%23wicket/2011-08-31

問題は、Check*Selector などを介して実装する方法がわかりません。誰かが私の簡単で便利な例を手伝ってくれませんか?

** アップデート:**

@svenmeierがコメントに書いたように。すべてのチェックボックスを選択するために checkgroupselector を追加しようとしていますが、次のことを行いました。

Form form = new Form("form");

CheckGroup group = new CheckGroup("group");
   group.add(new CheckGroupSelector("groupselector"));
   DataTable sourceTable = new DataTable("mytable", getColumns(), getDataProvider(), 10);
   sourceTable.setOutputMarkupPlaceholderTag(true);
   group.add(sourceTable);
   add(form);
   form.add(group);


private List getColumns() {
        List<IColumn<MyItem, String>> ret = Lists.newArrayList();
        ret.add(new AbstractColumn<MyItem, String>(new Model<>("")) {
            @Override
            public void populateItem(Item<ICellPopulator<MyItem>> cellItem, String componentId, IModel<MyItem> rowModel) {
                CheckBoxPanel checkBoxPanel = new CheckBoxPanel(componentId);
                cellItem.add(checkBoxPanel);
            }
        });
...
}

<span wicket:id="group">
<input type="checkbox" wicket:id="groupselector">check/uncheck all</input>
<table wicket:id="mytable">[Lookup Results]</table>
</span>

DataTable に CheckBox を追加するには、Panel を使用する必要があるため、次のようにします。

public class CheckBoxPanel extends Panel {

    private CheckBox field;

    public CheckBoxPanel(String id, IModel<Boolean> model) {
        super(id);
        field = new CheckBox("checkBox", model);
        add(field);
    }

    public CheckBoxPanel(String id) {
        this(id, new Model<Boolean>());
    }

    public CheckBox getField() {
        return field;
    }
}

CheckBoxPanel.html 内

<body>
    <wicket:panel xmlns:wicket="http://wicket.apache.org">
        <input type="checkbox" wicket:id="checkBox">
    </wicket:panel>
</body>

実際にはチェックグループが表示されますが、私のテーブルの下でチェック/チェックを外しても、その下のチェックボックスには影響しません。ここで何が間違っていますか?

4

2 に答える 2

1

Apache Wicket Cookbookから同じ例を実装しました。118 ページの第 5 章「すべての選択/選択解除チェックボックスの追加」を実行すると、同じ問題が発生します。SelectAll は機能しますが、DeselectAll は機能しません。これは修正できます:

jQuery ステートメントを

private final String js="var val=$(this).attr('checked'); $('." + uuid + "').each(function() { $(this).attr('checked', val); });";

private final String js = "if($(this).attr('checked') == 'checked') {var val=true;} else {var val=false;}$('." + uuid + "').each(function() { $(this).attr('checked', val); });";

最初のステートメントの問題は、チェックボックスがオフの場合、val が「未定義」であり、「false」ではないことです。

于 2015-11-26T10:42:08.130 に答える
0

ここで使用例を参照してください。

http://www.wicket-library.com/wicket-examples/compref/wicket/bookmarkable/org.apache.wicket.examples.compref.CheckGroupPage

CheckGroupSelector の DataTable の代わりに ListView を使用しますが、これは問題ではありません。

于 2013-07-11T08:01:28.427 に答える