電子書籍の厳選無料作品が豊富!

見てくださりありがとうございます。

VisualStudio2010/.NET4.0で開発しています。

やりたい事
 <%@ Register assembly="XXX" namespace="XXX" tagprefix="custom" %>
 <custom:DropDownListNew id="hogehoge" runat="server" code="100" />
 カスタムコントローラーにて、codeの値を元にDataBaseから登録されているリストデータを取得し
 Items.Addされた状態で画面が表示させたいと考えていました。
 (各Page_Loadにてリストを作るのではなくし楽させたい)

困った事
 submitさせた時にhogehoge.SelectIndexが必ず-1になってしまう。

 DB部分は省略してRender、もしくはRenderContentsにて
  Items.Add(new ListItem("hoge1", "1"));
 としても表示は出来てもsubmitさせたときにhogehoge.SelectIndexが必ず-1になってしまう。
 
  protected override void Render(HtmlTextWriter writer)
  {
   Items.Add(new ListItem("hoge1", "1"));
   Items.Add(new ListItem("hoge2", "2"));
   base.Render(writer);
  }

 ViewStateに反映されていないという事なのでしょうか?
 よろしくお願いいたします。

A 回答 (2件)

>(各Page_Loadにてリストを作るのではなくし楽させたい)



であれば、ControlのLoadイベントもしくは、OnLoadメソッドのオーバーライドにて実装する。


>protected override void Render(HtmlTextWriter writer)
>ViewStateに反映されていないという事なのでしょうか?

SaveStateCompleteが終わっているので。

ASP.NET ページのライフ サイクルの概要
http://msdn.microsoft.com/ja-jp/library/ms178472 …
    • good
    • 0
この回答へのお礼

参考にさせていただきました。
ありがとうございます。

>SaveStateComplete終わっているので
そういう事だったのですね。
参考になりました。

お礼日時:2012/11/20 12:46

表示したページ内でドロップダウンリストの内容を選択していても、submit後にSelectIndexが-1に


なるのでしょうか?
選択していない場合はそうなるような気もしますが。

あと、カスタムコントローラとしてどのようなプログラムを記述しているかによる部分のような
気がします。
コントローラのつくりかたで、どこまでの機能を自分で実装しないといけないかは異なるはず。

そもそもユーザーコントローラとして作成したのでもよさそうな気もします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2012/11/20 12:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!