Радиособытие типа ввода в ASP.Net

У меня есть таблица, сгенерированная кодом с радиокнопкой типа ввода. Это выглядит так

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim sbTable As New StringBuilder

    Dim btn As HtmlInputRadioButton = New HtmlInputRadioButton()
    btn.Attributes.Add("onclick", "addLayer()")
    ' cell.Controls.Add(btn)


    sbTable.Append("<table border='1px solid black' id='myTable' runat='server'> ")
    sbTable.Append("<thead>")
    sbTable.Append("<tr>")
    sbTable.Append("<th >No.</th>")
    sbTable.Append("<th >Division</th>")
    sbTable.Append("<th >Show</th>")



    sbTable.Append("</thead>")
    sbTable.Append("<tbody>")



    sbTable.Append("<tr>")
    sbTable.Append("<td>1</td>")
    sbTable.Append("<td>A</td>")
    sbTable.Append("<td><input type='radio' name='Overall' runat='server' id='radioA' value='A'  OnServerChange='RadioButton_CheckedChanged' AutoPostBack='true'/></td>")
    sbTable.Append("</tr>")




    sbTable.Append("<tr>")
    sbTable.Append("<td>2</td>")
    sbTable.Append("<td>B</td>")
    sbTable.Append("<td><input type='radio' name='Overall' runat='server' id='radioB' value='B'  OnServerChange='RadioButton_CheckedChanged' AutoPostBack='true'/></td>")
    sbTable.Append("</tr>")



    sbTable.Append("</tbody>")
    sbTable.Append("</table>")




    phTrendUk.Controls.Add(New Literal() With {.Text = sbTable.ToString})




End Sub

Я хочу иметь событие, когда я нажимаю переключатель, он меняет значение метки

   Protected Sub RadioButton_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    idlbl.Text = "Click"
End Sub

Я уже добавил RadioButton_CheckedChanged, но это не сработало. Кто-нибудь может помочь с этим делом?

...почему вы используете WebForms в 2022 году?

Dai 11.10.2022 05:11

...и почему вы так генерируете HTML? Почему вы не помещаете его в файл .aspx/.ascx как настоящую разметку? Кроме того, runat = "server" так не работает...

Dai 11.10.2022 05:12

на самом деле мне нужно динамически генерировать таблицу, поэтому я создаю такой код @Dai

Kemiko Setiawan 11.10.2022 05:14

Поверьте мне, когда я говорю, что гораздо проще отобразить HTML-разметку <table> в файле .aspx, чем ужасно злоупотреблять StringBuilder.

Dai 11.10.2022 05:15

Итак, можно ли включить событие, когда я использую StringBuilder? @Дай

Kemiko Setiawan 11.10.2022 05:19

Нет; невозможно использовать серверные события WebForms, используя ваш текущий подход.

Dai 11.10.2022 05:20

любое предложение, пожалуйста? Требование: я должен динамически генерировать данные внутри таблицы с переключателем для каждой строки. Поэтому, когда я нажимаю один из этих переключателей, он запускает какую-то функцию, например, создание таблицы или т. д. @Dai

Kemiko Setiawan 11.10.2022 05:28

Вы когда-нибудь использовали <asp:Repeater>?

Dai 11.10.2022 05:29

Давайте продолжим обсуждение в чате.

Kemiko Setiawan 11.10.2022 05:31

Я рекомендую вам прочитать эти (старинные) статьи времен расцвета WebForms, в которых обсуждается, как использовать динамически создаваемые элементы управления в WebForms: web.archive.org/web/20110828071315/http://… /web/20110828195831/http://… web.archive.org/web/20110823031659/http://… web.archive.org/web/20110828200002/http://…

Dai 11.10.2022 05:41

Посмотрите мой пример ниже — это очень просто — меньше работы, чем на любой другой платформе.

Albert D. Kallal 12.10.2022 00:05
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
11
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конечно, вы можете это сделать.

Вопрос в том, откуда берется список опций для RadioButtonList?

Кроме того, вам не нужна ни таблица, ни весь этот код для создания разметки.

Просто перетащите список радиокнопок на веб-форму из панели инструментов.

Теперь у вас есть это:

        <asp:RadioButtonList ID = "RadioButtonList1" runat = "server">

        </asp:RadioButtonList>

И в представлении формы используйте это:

Итак, теперь мы можем редактировать/добавлять элементы с помощью дизайнера.

Итак, прибавляем 1, а текст Division

и 2 в целом,

Итак, это:

Теперь, конечно, приведенное выше создает эту разметку:

        <asp:RadioButtonList ID = "RadioButtonList1" runat = "server"
            AutoPostBack = "true">
            <asp:ListItem Value = "1">Division</asp:ListItem>
            <asp:ListItem Value = "2">Overall</asp:ListItem>
        </asp:RadioButtonList>
        <br />

        <asp:Label ID = "Label1" runat = "server" Text = ""></asp:Label>

Итак, у нас есть autopostback=true и 2 варианта выше.

Итак, лист свойств, а затем вкладка событий и дважды щелкните событие SelectedIndexChanged отсюда:

Теперь мы можем написать код, чтобы установить значение метки, которая у нас есть ниже.

Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged

    Dim strResult As String = ""

    If RadioButtonList1.SelectedIndex = -1 Then
        strResult = "No selection made"
    Else
        strResult = "Value selected = " & RadioButtonList1.SelectedItem.Value &
                    " Text selected value = " & RadioButtonList1.SelectedItem.Text
    End If

    Label1.Text = strResult


End Sub

Кроме того, мы можем настроить кнопки так, чтобы они двигались вертикально или горизонтально.

И мы даже можем добавить некоторые стили к кнопкам.

Итак, теперь у нас есть это:

И вы можете определенно использовать код, чтобы заполнить список вариантов.

Скажите так:

        <asp:RadioButtonList ID = "RadioButtonList1" runat = "server"
            AutoPostBack = "true"
            DataValueField = "ID"
            DataTextField = "HotelName">
        </asp:RadioButtonList>
        <br />

И на нашей странице загрузка, то этот код:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        LoadButtonList
    End If
End Sub

Sub LoadButtonList()

    Dim strSQL As String =
        "SELECT  ID, HotelName FROM tblHotelsA ORDER BY HotelName"

    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            RadioButtonList1.DataSource = cmdSQL.ExecuteReader
            RadioButtonList1.DataBind()
        End Using
    End Using
End Sub

Тот же код для выбранного индекса изменился, и мы получили это:

Итак, используйте список переключателей.

И вы можете не только использовать редактор для добавления списка вариантов, но и второй пример показывает, как мы можем даже использовать базу данных для управления вариантами.

Обратите внимание, что у каждого выбора есть отображаемое текстовое значение, а затем скрытое значение выбора, и я полагаю, что также можно использовать индекс выбора.

А в коде позади вы можете свободно использовать код для добавления вариантов, если вы не хотите жестко кодировать разметку, или, как во втором примере, извлекать варианты из базы данных.

Или, может быть, из кода вам нужен выбор от 1 до 5.

Итак, тогда это:

        <asp:RadioButtonList ID = "RadioButtonList1" runat = "server"
            AutoPostBack = "true">
        </asp:RadioButtonList>

И затем произнесите этот код при загрузке:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        For i = 1 To 5
            Dim OneChoice As New ListItem("Choice " & i, i)
            RadioButtonList1.Items.Add(OneChoice)
        Next
    End If
End Sub

И теперь у нас есть это:

так что вы можете использовать встроенный редактор элементов, вы можете передать данные списка RB или даже просто зациклить и добавить варианты в код.

Другие вопросы по теме