none
DataSourceによるDropDownListのリスト設定は出来ない? RRS feed

  • 質問

  • VS2003 Basicで開発中です。

     

    DropDownListの操作を作っていて納得できないことがあります。

    リストへの値の設定は、HTMLでListItemにより直接値を入力する方法と

    Page_Load時にDataTableを作成してDropDownListにDataBindしてやる方法で

    それぞれ表示及び選択文字列の取得はうまくいったのですが、

    String()で文字列テーブルを作成し、それをDropDownListのプロパティの

    DataSourceに設定してDataBindすると、画面に値が表示されるものの、

    選択対象を変更しても、初期時に表示される内容ばかりが返ってきます。

     

    これは、そもそも出来ない方法なのか、

    何か他に処理が必要なのでしょうか。

     

    よろしくお願いいたします。

    2007年6月19日 6:50

回答

すべての返信

  • ポストバック後もDataBindを実行してませんか?
    2007年6月19日 7:27
  • してました・・・

     

    Page_Load()

     If Not IsPostBack Then

       DataBind()

     End If

    End Sub

     

    DataBindを上記のタイミングのみにしたら出来ました。

    ありがとうございます。

     

    ところで、追加の質問ですが、

    Page_Loadtとは、その画面が表示される時だけではなく、

    コントロールイベントが発生すると必ず呼ばれるものなのでしょうか・・・

    基本的な質問で大変恐縮です。

     

    2007年6月19日 7:33
  • Page_Loadはポストバック時には必ず発生します。

    コントロールのイベントはポストバックすることによってはじめて発生しますから、そのたびにPage_Loadも発生します。

    2007年6月19日 8:52
  • なるほど。

    それで、Page_Loadでの場合わけが必要なのですね。

     

    VCばかりやっていたので、なんだかイベントの動きがつかみづらいですね。

     

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

    2007年6月20日 9:02
  • Windowsアプリケーションと違って、サーバ側にリクエストがこないことにはASP.NETは処理ができませんから、イベントの発生の仕組みとかも異なっています。

    ASP.NETがどんなふうに動いているか、ということだと下記が少しは参考になるかもしれません。

    http://dotnetfan.org/blogs/dotnetfanblog/archive/2007/06/18/2591.aspx

     

    2007年6月20日 10:00
  • 大変分かりやすい説明でした。

    他にも色々あるようですので、参照させて頂きます。

     

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

    2007年6月21日 6:21