1

どんなアイデアにも感謝します。

要件

(A) を含む表

A.1 text columns
A.2 one column for HTML content
A.3 one column to house a radio button group

(B) たとえば、SimplePager を使用して、レコードをページングする機能。

これまでに検討された代替案

  1. FlexTable - (A) のすべてを提供できますが、(B) は提供できません
  2. CellTable - A.1 と (B) を提供できますが、A.2 と A.3 は提供できません

AとBのすべてを提供する代替案を誰かが提案できますか? Smart GWT も調べましたが、使用できるものは何もありません。しかし、私は GWT も Smart GWT もあまり経験がありません。

ありがとうございました。


[編集 1] 次のように作成された 3 つのボタンを持つラジオ ボタン グループ ('InterimReport' は私のデータ型です):

Column<InterimReport, SafeHtml> radioButtonColumn = new Column<InterimReport, SafeHtml>(new SafeHtmlCell()) {

    @Override
    public SafeHtml getValue(InterimReport object) {
    String s = "<input type=\"radio\" name=\"selection\"" + object.get("dbIndex") + " value=\"match\" /> match<br />"+ "<input type=\"radio\" name=\"selection\"" + object.get("dbIndex")+ " value=\"nomatch\" /> no match<br />" + "<input type=\"radio\" name=\"selection\""+ object.get("dbIndex") + " value=\"urlnotfound\" /> URL not found</>";

    return SafeHtmlUtils.fromTrustedString(s);
    }
};

[編集 2] しかし、ラジオ ボタンのユーザーの選択をキャプチャする方法は? このコード フラグメントは何もしていないようです。

radioButtonColumn.setFieldUpdater(new FieldUpdater<InterimReport, SafeHtml>() {
    public void update(int index, InterimReport object, SafeHtml value) {
        System.out.println("Reached here");
        if (value.equals("match")) {
            setMatch(object.get("dbIndex"), index);
        } else if (value.equals("nomatch")) {
            setNoMatch(object.get("dbIndex"), index);
        } else if (value.equals("urlnotfound")) {
            setUrlNotFound(object.get("dbIndex"), index);
        }
    }
});
4

1 に答える 1

0

CellTable は HTML コンテンツ ( SafeHtmlCell) を保持できるため、ラジオ ボタン グループも保持できます。<input type="radio" name="whatever"/>HTMLとして使用するだけです。CellTable でウィジェットを使用することはできません- 他のすべては引き続き機能します。

Column<YourType, SafeHtml> radioColumn = new Column<YourType, SafeHtml>(new SafeHtmlCell())
{
    @Override
    public SafeHtml getValue(YourType object)
    {
        return generateInputHtmlFromObject(object);
    }
}

cellTable.addColumn(radioColumn);

(申し訳ありませんが、テストされていないコードです。メソッドのシグネチャなどを覚えていない可能性があります)

于 2011-04-07T16:18:02.690 に答える