динамически создаваемый список радиобуттонистов - PullRequest
2 голосов
/ 04 января 2010

Есть главная страница. На странице содержимого есть список с гиперссылками, содержащими переменные запроса. Вы нажимаете на одну из ссылок, чтобы перейти на страницу, содержащую список радиобуттон (возможно).

Первая проблема: когда я попадаю на новую страницу, я использую одну из переменных, чтобы определить, нужно ли добавлять список радиокнопок в местозаполнитель на странице. Я попытался сделать это на странице) _load, но затем не смог получить выбранные значения. Когда я играл в preInit, когда я в первый раз открыл страницу, я не смог добраться до элементов управления страницы. (Ссылка на объект не установлена ​​для экземпляра объекта.) Я думаю, что это как-то связано с MasterPage и содержимым страницы? Элементы управления не создаются позже? (кстати, используя vb)

Вторая проблема: скажем, я заставлю это работать, как только я нажму кнопку, могу ли я по-прежнему обращаться к переменной переданного запроса, чтобы определить выбранный элемент в списке радиобуттон?

    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

1 Ответ

2 голосов
/ 05 января 2010

Если у вас есть заполнитель контента, можете ли вы просто добавить туда элемент управления списком переключателей?

На главной странице:

<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

Надеюсь, вы найдете здесь что-нибудь полезное.

...