質問

私のサイトには言語変更管理がありますので、言語をクリックすると同じページを再ロードしますが、さまざまな言語テキストで、ユーザーがデータをリロードする必要がある場合は、同じページを再ロードします。

CheckBox、TextBoxにデータをリロードすることができましたが、ラジオボタンではありません。

私のコードを見てください

データリストとラジオボタンを内蔵しています。

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

データリストをロードし、ラジオボタン

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

ラジオボタン値をユーザーセッションオブジェクトに保存します

 user.Role = Request["rblRole"];
.

しかし、保存したオブジェクトをラジオボタンにリロードすると、ラジオボタンオブジェクトコントロールが見つかりません....ラジオボタンは常にNULLです。そして私はなぜがわからない

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

それを修正する方法を教えてください ありがとう

役に立ちましたか?

解決

を追加する必要があります

runat="server" 
.

ラジオボタンそれ以外の場合は、後ろのコードからアクセスできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top