문제

내 사이트에는 언어 변경 컨트롤이 있으므로 언어를 클릭하면 동일한 페이지를 다시로드하지만 다른 언어 텍스트가 있고 사용자가 데이터를 다시로드 해야하는 양식에 이미 필드가있는 경우입니다.

Checkbox, TextBox에 데이터를 다시로드했지만 라디오 botton 에도 없습니다.

내 코드를 참조하십시오

DataList와 내부의 라디오 버튼이 있습니다.

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

i DataList, Radio 버튼 를로드합니다.

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