Question

Mon site a un contrôle de changement de langue afin que lorsqu'une langue est cliquée, je recharge la même page mais avec un texte de langue différent, et si l'utilisateur a déjà du champ dans le formulaire, je dois recharger les données.

J'ai réussi à recharger des données dans des cases à cocher, la zone de texte mais pas avec Radio Botton

S'il vous plaît voir mon code

J'ai un datataliste et un bouton radio à l'intérieur.

<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>

Je charge le DataList, les boutons radio

dlRole.DataSource = ...
dlRole.DataBind();

I Enregistrez la valeur du bouton radio dans l'objet Session utilisateur

 user.Role = Request["rblRole"];

Mais lorsque je rechargeez l'objet sauvegardé dans le bouton radio, il ne peut pas trouver le bouton d'objet de la touche radio .... Le bouton radio est toujours null.et je ne sais pas pourquoi

        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;
            }
        }

S'il vous plaît laissez-moi savoir comment résoudre ce problème merci

Était-ce utile?

La solution

Vous devez ajouter

runat="server" 

sur votre bouton radio sinon il ne sera pas accessible à partir du code derrière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top