我的网站有语言改变控制,所以当点击一种语言时,我重新加载相同的页面,而是用不同的语言文本,以及用户已经在表单中有字段,我必须重新加载数据。

我已经设法将数据汇入复选框,文本框,而不是无线瓶颈

请看我的代码

我有一个数据区和里面的单选按钮。

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

我加载DataList,单选按钮

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

我将单选按钮值保存到用户会话对象

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

但是当我将保存的对象重新加载到单选按钮中时,它找不到单选按钮对象控制....单选按钮始终为空。而且我不确定为什么

        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