Botones de radio C # ASP.NET y HTML
-
11-12-2019 - |
Pregunta
Mi sitio tiene un control de cambio de idioma, por lo que cuando se hace clic en un idioma, vuelvo a cargar la misma página, pero con un texto de lenguaje diferente, y si el usuario ya ha aparecido en el formulario, tengo que volver a cargar los datos.
He logrado recargar datos en casillas de verificación, TEXTBOX pero no con Radio Botton
Por favor vea mi código
Tengo un datalista y un botón de radio dentro.
<asp:DataList runat="server" ID="dlRole">
<ItemTemplate>
<input type="radio" id="rblRole" name="rblRole" value='<%# Eval("RoleCode") %>' />
<asp:Label ID="lbRole" runat="server" Text='<%# Eval("Description")%>'></asp:Label>
</ItemTemplate>
</asp:DataList>
Cargo el DATALISTA, BOTTONES DE RADIO
dlRole.DataSource = ...
dlRole.DataBind();
Guarda el valor del botón de radio en el objeto de sesión de usuario
user.Role = Request["rblRole"];
Pero cuando vuelva a cargar el objeto guardado en el botón de radio, no puede encontrar el control del objeto del botón de radio ... El botón de radio siempre es nulo.y no estoy seguro de por qué
foreach (DataListItem item in dlRole.Items)
{
HtmlInputRadioButton radio = (item.FindControl("rblRole") as HtmlInputRadioButton);
if (radio != null) <--- always nulll
{
if (radio.Value == user.Role.ToString())
{
radio.Checked = true;
}
else
radio.Checked = false;
}
}
Por favor, hágamelo saber cómo solucionarlo Gracias
Solución
Necesitas agregar
runat="server"
En su botón de radio, de lo contrario, no será accesible desde el código detrás.