- PR -

ASP.NETでRadioButtonListを動的に表示させるには?

1
投稿者投稿内容
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2008-11-14 15:45
あるデータベースAがあり、それの内容に応じてRadioButtonListを複数作りたいと
考えています。
この時RadioButtonListを複数にする方法はPage.Controls.Addなのだと思っていま
すが間違いないでしょうか?またRadioButtonListに対してアイテムを追加しようと
すると「型 'RadioButton' のコントロール '1_0' は、runat=server を含む form タグの内側に置かなければ成りません。」というエラーがでます。これはなぜでしょうか?
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-14 16:02
> 「型 'RadioButton' のコントロール '1_0' は、runat=server を含む form タグの内側に置かなければ成りません。」というエラーがでます。これはなぜでしょうか?

form タグの内側に RadioButton を置いていないからです。
だから Page.Form.Controls.Add じゃないですかね。
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2008-11-14 16:09
Kingさんお返事ありがとうございます。
単純に「Page.Controls.Add 」を「Page.Form.Controls.Add」に
変えてやってみましたが、
「コントロールにコード ブロック (<% ... %>) が含まれているため、コントロールのコレクションを変更できません。」というエラーがでます。

これってPage_Loadで処理はできないってことでしょうか?
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-14 16:18
私のやった事。

1.新規で Web サイトを作成。
2.最初からある Default.aspx.vb に下記のコードを追加。

コード:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim rbl As New RadioButtonList()

        rbl.Items.Add("TEST1")
        rbl.Items.Add("TEST2")

        Page.Form.Controls.Add(rbl)
    End Sub


3.デバッグ開始。
4.表示されました。

ちなみに VS2005 です。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-11-15 05:58
RadioButtonListを追加する場所を特定させるために
PlaceHolderを利用したらどうですか。

<asp:PlaceHolder ID="PlaceHolder1" runat="server" />

PlaceHolder1.Controls.Add(rbl)
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
kinu
常連さん
会議室デビュー日: 2007/10/24
投稿数: 34
投稿日時: 2008-11-15 09:10
Accessさん、Kingさんありがとうございます。
Accessさんの言っていた方法実現できました!!
1

スキルアップ/キャリアアップ(JOB@IT)