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

m.matsuo [E-MAIL ADDRESS DELETED]
2007年 1月 22日 (月) 18:41:53 JST


松尾です。

横レス失礼します。
私はコミッタではないので、的外れかもしれませんが…。

おそらく、checkboxの初期化が必要なのではないかと思います。
checkboxは非チェック状態の時はsubmitされないので、5行目のような状況になります。
Strutsも一緒でActionForm#resetでcheckboxのデフォルト値をfalseにしてやるという
処理が必要でした。

なのでinitialize時にcheckboxの初期状態をfalseにしてやればいいような気がします。

重ねて申し上げますが、的外れだったらすいません。

07/01/22 に Asarima<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  松尾
  [E-MAIL ADDRESS DELETED]
  http://d.hatena.ne.jp/devworks/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



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