1

ユーザーが 1 つのサブジェクトを選択できるようにする必要がありますが、サブジェクトは資格にグループ化されているため、「グループ」ごとに見出しを表示したいと考えています。私の最初の考えは asp:RadioButtonList です。これは、1 つだけを選択できるオプションのリストを提供しますが、リストを見出しで分割する手段はありません。

そこで、次のコードを試してみましたが、LiteralControl が追加されていることがわかりません。これは有効なアプローチではないと思います。

For Each item As Subject In Qualifications
    If item.QualCode <> previousQualCode Then
        rblSelection.Controls.Add(New LiteralControl(item.QualName))
    End If

    rblSelection.Items.Add(New ListItem(item.SubjectName, item.SelectionCode))
    previousQualCode = item.QualCode
Next
4

1 に答える 1

2

いいえ、これはできません。ListItemsがある場合にのみ有効です。別のアプローチは、サブジェクトごとにRadioButtonを用意することです。それらにすべて同じGroupNameを付けます。これは、1つしか設定できないことを意味しますが、ページの見出しの下など、好きなように配置できます。

    <h3>Qualification 1</h3>
    <asp:RadioButton id="rbSubject" runat="server" />
    <asp:RadioButton id="rbSubject1" runat="server" />
    <asp:RadioButton id="rbSubject2" runat="server" />
    <h3>Qualification 2</h3>
    <asp:RadioButton id="rbSubject3" runat="server" />
    <asp:RadioButton id="rbSubject4" runat="server" />

コードビハインド:

        rbSubject.GroupName = "grp1";
        rbSubject1.GroupName = "grp1";
        rbSubject2.GroupName = "grp1";
        rbSubject3.GroupName = "grp1";
        rbSubject4.GroupName = "grp1";

この場合、placeholdercontrolを使用して、動的に生成されたコントロールとヘッダーをplaceholdersControlsコレクションに追加します。

For Each item As Subject In Qualifications
    If item.QualCode <> previousQualCode Then
        placeholder.Controls.Add(New LiteralControl(item.QualName))
    End If
    create new button here:- sorry Im a C# dev, I dont know the VB syntax and I am editing from my phone, but you should be able to work it out.

    placeholder.Controls.Add(btn)
    previousQualCode = item.QualCode
Next
于 2010-04-22T14:20:30.670 に答える