[Seasar-user:5816] Re: [Teeda]SelectManyCheckBoxを使わずに可変のCheckBoxリストを作りたい

Asarima [E-MAIL ADDRESS DELETED]
2007年 1月 22日 (月) 18:05:34 JST


Asarimaです。

 CheckBoxをForeachで記述する方法について、改めて質問致します。

 [Seasar-user:5811]の米林さんの投稿を見て、ItemsSaveを記述していない
ことがわかりました。記述して試したところ、エラーは出なくなりましたが、
アクションメソッドではまだ想定通りの値を受け取ることができません。

 参考までに2つのCheckBoxをForeachで記述した場合の初期状態、行った
操作、結果の正否を記したものを報告します。何かわかりましたら教えてくだ
さい。本当に困っています。よろしくお願いいたします。

※以下の3つの列については、左から、
 ・画面が表示された時の状態
 ・画面からチェックを付け外ししてsubmitする直前の状態
 ・submit直後のアクションメソッドでの状態
 を示しています。
 例えば5行目だと、最初に先頭がcheckされていて、画面上でそれをはずし
てsubmitしても、アクションメソッドではcheck=trueを受け取ります。

 __ : __ : __ (正常)
 __ : A_ : A_ (正常)
 __ : _B : _B (正常)
 __ : AB : AB (正常)
 A_ : __ : A_ (異常)
 A_ : A_ : A_ (正常)
 A_ : _B : _B (正常)
 A_ : AB : AB (正常)
 _B : __ : _B (異常)
 _B : _B : _B (正常)
 _B : A_ : AB (異常)
 _B : AB : AB (正常)
 AB : __ : AB (異常)
 AB : A_ : AB (異常)
 AB : _B : _B (正常)
 AB : AB : AB (正常)

 <凡例>
 _…チェックしていない
 A…1つめをチェックしている
 B…2つめをチェックしている

>Asarimaです。
>
> Teeda 1.0.3にて、データベースからCheckBoxの情報を取り出して、可変の
>CheckBoxリストを作ろうとしています。
>
> SelectManyCheckBoxを使ってみたのですが、tableの1行に全部表示されてし
>まうので、件数が多いとレイアウトが崩れてしまいます。要件は、十数件の
>CheckBoxを3行程度で表示することです。
>
> そこで、SelectManyCheckBoxを使わず、Foreachで記述しようと頑張っている
>のですが、どうしてもうまくいきません。
>
> ソースはおおむね以下の通りになっています。1度目のActionメソッドでは
>うまく受け取れるのですが、続けているとエラーページが表示されたりします。
> あるいは、initializeの時に初期値にtrueをセットしておくと、画面上で
>checkをはずしても、Actionメソッドでtrueを受け取ったりします。
>
> どのような案でも検討しますので、実現できる方法をご教授願います。
> よろしくお願いいたします。
>
>[HTML]
>
><div id="testItems">
> <input type="checkbox" id="check" value="1" checked="checked" />
> <span id="checkLabel">あれ</span>
></div>
>
>[Page](getter,setterは省略)
>
>private CheckBox2Dto[] testItems;
>private int testIndex;
>private boolean check;
>private String checkLabel;
>private int checkValue;
>
>public String initialize() {
>  testItems = new CheckBox2Dto[] {
>    new CheckBox2Dto(), new CheckBox2Dto()
>  };
>  testItems[0].setCheckLabel("あれ");
>  testItems[0].setCheckValue(1);
>  testItems[1].setCheckLabel("それ");
>  testItems[1].setCheckValue(2);
>}
>
>[CheckBox2Dto](getter,setterは省略)
>
>public class CheckBox2Dto {
>  private boolean check;
>  private String checkLabel;
>  private int checkValue;
>}



Seasar-user メーリングリストの案内