2010-04-22 92 views
1

我需要提供一種方法來允許用戶選擇1個主題,但主題被分組爲資格,因此我想爲每個「組」顯示標題。我的第一個想法是一個asp:RadioButtonList,因爲它提供了一個選項列表,其中只能選擇一個,但是沒有辦法添加標題以打破列表。我可以將不是ListItem的控件添加到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 

回答

2

不,你不能這樣做。只有有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"; 

在你的情況,使用placeholdercontrol和動態生成的控件和標題添加到佔位符控件集合。

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 
+0

我不認爲這是可能的,但我不確定。佔位符的想法工作,謝謝:) – 2010-04-23 07:53:35

+0

不客氣。您能否將完整的代碼發給我,以便我可以在VB中更新我的文章? [email protected] – 2010-04-23 07:55:01

相關問題