动态创建单选按钮列表

动态创建单选按钮列表

问题描述:

有一个母版页。内容页面包含一个带有包含请求变量的超链接的列表。您点击其中一个链接转到包含单选按钮列表的页面(也许)。动态创建单选按钮列表

第一个问题:当我到达新页面时,我使用其中一个变量来确定是否将一个单选按钮列表添加到页面上的占位符。我试图在页面中执行它)_load,但无法获得所选的值。当我在preInit中进行播放时,第一次访问该网页时,我无法访问该网页的控件。 (对象引用未设置为对象的实例。)我认为它与MasterPage和页面内容有关?这些控件直到后来才被实例化? (使用vb的方式)

第二个问题:说我得到这个工作,一旦我点击一个按钮,我仍然可以访问传递的请求变量来确定radiobuttonlist中选定的项目?

Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit 
    'get sessions for concurrent 

    Dim Master As New MasterPage 
    Master = Me.Master 

    Dim myContent As ContentPlaceHolder = CType(Page.Master.FindControl("ContentPlaceHolder1"), ContentPlaceHolder) 
    If Request("str") = "1" Then 
     Dim myList As dsSql = New dsSql() ''''instantiate the function to get dataset 
     Dim ds As New Data.DataSet 

     ds = myList.dsConSessionTimes(Request("eid")) 
     If ds.Tables("conSessionTimes").Rows.Count > 0 Then 
      Dim conY As Integer = 1 

      CType(myContent.FindControl("lblSidCount"), Label).Text = ds.Tables("conSessionTimes").Rows.Count.ToString 

对不起,如此有需要 - 但也许有人可以指示我到一个页面的例子?也许看到它会帮助它有意义?

感谢.... JB

如果你有一个内容占位符,可能你只需要添加的单选按钮列表控件到那里?

在母版页:

<asp:ContentPlaceHolder id="ContentPlaceHolderForRadioButtonList" runat="server">  
</asp:ContentPlaceHolder> 

一些链接,包含下一个页面上使用请求变量。

<a href="RadioButtonList.aspx?ref=first" >Link 1</a> 
<a href="RadioButtonList.aspx?ref=second" >Link 2</a><br /> 
<a href="RadioButtonList.aspx?ref=third" >Link 3</a><br /> 
<a href="RadioButtonList.aspx?ref=forth" >Link 4</a><br /> 
<a href="RadioButtonList.aspx?ref=fifth" >Link 5</a><br /> 
<a href="RadioButtonList.aspx?ref=sixth" >Link 6</a> 

现在,在具有单选按钮列表的页面上,将其添加到内容占位符中。

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolderForRadioButtonList" Runat="Server"> 
<!-- radio button list to be dynamically populated--> 
    <asp:RadioButtonList ID="RadioButtonList1" runat="server"> 
    </asp:RadioButtonList> 
</asp:Content> 

RadioButtonList.aspx: 代码以基于传递的信息动态填充您的单选按钮列表

Partial Class RadioButtonList 
    Inherits System.Web.UI.Page 
    Private selection As String = "" 

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
     selection = IIf(Request.QueryString("ref") IsNot Nothing, Request.QueryString("ref"), "") 
     If selection = "first" Then 
      RadioButtonList1.Items.Add(New ListItem("first", "1")) 
      RadioButtonList1.Items.Add(New ListItem("third", "3")) 
      RadioButtonList1.Items.Add(New ListItem("fifth", "5")) 
     ElseIf selection = "second" Then 
      RadioButtonList1.Items.Add(New ListItem("second", "2")) 
      RadioButtonList1.Items.Add(New ListItem("forth", "4")) 
      RadioButtonList1.Items.Add(New ListItem("sixth", "6")) 
     Else 
      RadioButtonList1.Items.Add(New ListItem("first", "1")) 
      RadioButtonList1.Items.Add(New ListItem("second", "2")) 
      RadioButtonList1.Items.Add(New ListItem("third", "3")) 
      RadioButtonList1.Items.Add(New ListItem("forth", "4")) 
      RadioButtonList1.Items.Add(New ListItem("fifth", "5")) 
      RadioButtonList1.Items.Add(New ListItem("sixth", "6")) 
     End If 

     'set the selected radio button 
     For i As Integer = 0 To RadioButtonList1.Items.Count - 1 
      If RadioButtonList1.Items(i).Text = selection Then 
       RadioButtonList1.Items(i).Selected = True 
       Exit For 
      End If 
     Next 

    End Sub 

End Class 

希望你能找到有用的东西这里。