Я могу добавить Средства управления, которые не являются ListItems к RadioButtonList?

Я должен позволить позволять пользователям выбирать 1 Предмет, но предметы сгруппированы в Квалификации и таким образом, я хочу показать достижение каждой 'группы'. Моя первая мысль является asp:RadioButtonList, поскольку это предоставляет список опций, из которых только один может быть выбран, но нет никакого средства добавить, разбивают список с заголовками.

Таким образом, я попробовал следующий код - но я не вижу, что 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
1
задан Simon Martin 25 November 2013 в 12:28
поделиться

1 ответ

Нет, вы не можете этого сделать. Допустимо только наличие ListItems. Другой подход - иметь RadioButton для каждого предмета. Дайте им все одно и то же GroupName, что будет означать, что вы можете установить только одно, но вы можете расположить их, как вам нравится, на странице, возможно, под заголовками.

    <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";

В вашем случае используйте элемент управления-заполнитель и добавьте динамически сгенерированные элементы управления и заголовки в коллекцию элементов управления-заполнителей.

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
2
ответ дан 3 September 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: