Найти, какой вход (radiobutton) проверяется в C # - PullRequest
0 голосов
/ 11 мая 2018

У меня в aspx:

<asp:DataList ID="dl1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal"  CellPadding="10">
       <ItemTemplate>
             <input type="radio" name="Flights" id="<%# DataBinder.Eval(Container.DataItem, "IdFlight") %> "/>
           <p >From: <%# DataBinder.Eval(Container.DataItem, "FromLoc") %>, <%# DataBinder.Eval(Container.DataItem, "FromCountry") %>
             </p>
           <%# DataBinder.Eval(Container.DataItem, "FromAirport") %> Leaves at: <%# DataBinder.Eval(Container.DataItem, "Time") %>
            <p >To: <%# DataBinder.Eval(Container.DataItem, "ToLoc") %>, <%# DataBinder.Eval(Container.DataItem, "ToCountry") %> 
                <%# DataBinder.Eval(Container.DataItem, "ToAirport") %> </p>
        </ItemTemplate>  
</asp:DataList>

Как вы можете видеть, есть радиокнопка типа Input (html control), которой я даю идентификатор полета из моих связанных данных. Теперь в моем коде я должен найти тот элемент управления вводом, который проверен. Как мне этого добиться? Я попробовал:

foreach (Control c in this.Controls)

и т. Д., Но тогда как узнать, является ли это Input-Radio и проверено ли оно

1 Ответ

0 голосов
/ 11 мая 2018

Прежде всего, добавьте атрибут runat="server" к своему элементу управления вводом, чтобы вы могли получить доступ к элементу управления на сервере:

<input type="radio" runat="server" name="Flights" id="<%# DataBinder.Eval(Container.DataItem, "IdFlight") %> "/>

Затем вы можете выполнить цикл по всем элементам управления внутри элемента, подобного этому:

private string GetSelectedFlightID()
{
    foreach (DataListItem item in dl1.Items)
    {
        foreach (var control in item.Controls)
        {
            if (control is HtmlInputRadioButton radioButton)
            {
                if (radioButton.Checked)
                    return radioButton.ID;
            }
        }
    }
    return string.Empty;
}
...