- - PR -
ユーザーコントロール上のアイテムプロパティ取得について質問です
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-11-22 14:12
【質問内容】
ユーザーコントロール(ascxファイル)上に設置したアイテムのうち、 ListBoxやRadioButtonのプロパティを実行時に取得出来ないという事象が起きています。 解決方法、もしくはユーザーコントロールの使用方法に関する情報など、 ご存知の方がありましたらご教示頂ければ大変ありがたいです。 それでは宜しくお願いします。 【事象例】 1. ListBoxのSelectedIndex値 明細を選択しているにも関わらず「-1:未選択」で返却される 2. ListBoxのItems.Count値 明細が存在しても「0:明細なし」で返却される 3. RadioButtonのCheckdプロパティ チェックしていてもChecked = Falseで返却される | ||||
|
投稿日時: 2002-11-22 15:05
Page_Loadイベントで初期化されていませんか? if(!IsPostBack) { } の中にコントロールの初期化処理を書いてもだめでしょうか? | ||||
|
投稿日時: 2002-11-22 15:44
焼きそばさん、レスありがとうございました。
確かにPage_Load中でアイテム値の初期設定を行っていたので、 明細が初期化されてしまい、表題の事象が発生していました。 初歩的な質問をしてしまってすみませんでした。 それを踏まえて再度質問をさせていただきたいのですが、 明細の選択情報を保持したまま再読込を行う事って可能なのでしょうか? 再読込=初期化となるので無理かなという気はしているのですが…。 それが出来なければ、どこか別の領域に選択した明細情報を保存しておいて、 それを利用するという方法しかないのだろうかと考えています。 情報をお持ちの方、アドバイスを頂ければありがたいです。 それでは宜しくお願いします。 | ||||
|
投稿日時: 2002-11-22 15:57
再読込といってもAutoPostBackでの読み込みなら if(!IsPostBack) { //最初にページが読み込まれる時にのみ動作 } で回避できますよ。 また、それ以外(Redirectなど)の処理の場合は Session変数に持たせてあげるのも一つの方法です。 あとからプログラムを見直したときに Session変数の方がわかりやすいかも知れません。 そのあたりはお好みで。 | ||||
|
投稿日時: 2002-11-22 18:57
焼きそばさん、再レスありがとうございました。
Session変数へ格納しようとしてみたのですが、 Page_Load処理に入っている時点でリストボックスのプロパティは 初期化されてしまっているようです。 なお、リストボックスの「SelectedIndexChanged」イベントで 値を取得する方法も試してみたのですが、リストボックスの明細選択時に イベントがキャッチ出来ない事象が発生してしまい、値取得が出来ない状態です。 方向転換してJavaScriptで処理を実装することも含め、調査を継続したいと思います。 一先ず結果報告をさせていただきました。 |
1