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

¿Fue útil?

Solución

Necesitas agregar

runat="server" 

En su botón de radio, de lo contrario, no será accesible desde el código detrás.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top