【问题标题】:c# ASP.NET Datalist and HTML radio buttonsc# ASP.NET Datalist 和 HTML 单选按钮
【发布时间】:2012-05-18 15:03:17
【问题描述】:

我的网站有语言更改控制,所以当点击一种语言时,我会重新加载相同的页面,但使用不同的语言文本,如果用户已经在表单中输入了字段,我必须重新加载数据。

我已经设法将数据重新加载到复选框、文本框中,但不是单选按钮

请看我的代码

我有一个数据列表和一个单选按钮。

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

请告诉我如何解决这个问题 谢谢

【问题讨论】:

    标签: c# asp.net radio-button datalist datalistitem


    【解决方案1】:

    你需要添加

    runat="server" 
    

    在您的单选按钮上,否则将无法从背后的代码访问。

    【讨论】:

    • 我之前尝试过,如果我添加 runat=server,按钮不会分组,用户一次可以选择多个....有什么想法可以解决这个问题吗?
    • Welcome to ASP.NET ;) 这是一个老错误(请参阅此处support.microsoft.com/kb/316495)-如果您进行一些搜索,您会发现一些解决方法-主要是用 a 重写名称一点JavaScript
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2011-05-18
    相关资源
    最近更新 更多