动态创建单选按钮列表
问题描述:
有一个母版页。内容页面包含一个带有包含请求变量的超链接的列表。您点击其中一个链接转到包含单选按钮列表的页面(也许)。动态创建单选按钮列表
第一个问题:当我到达新页面时,我使用其中一个变量来确定是否将一个单选按钮列表添加到页面上的占位符。我试图在页面中执行它)_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
希望你能找到有用的东西这里。