如何在代码隐藏中将 class CssClass 及其属性添加到 RadioButtonList

How to add class CssClass and its attributes to RadioButtonList in code-behind

在我的场景中,有一个包含 RadioButtonList 的 UserControl(Day),这个 UserControl 包含在另外 5 个 UserControls(Monday, Tuesday...Friday) 中,这个 UserControls 放在 aspx 页面中。

在 Day UserControl 的隐藏代码中,存在以下代码。

rdlUser.DataTextField = "Description";
rdlUser.DataValueField = "Value";
rdlUser.DataSource = userTypes;
rdlUser.DataBind();
rdlUser.Items[0].Enabled = false;

Day UserControl 中 rdlUser 的标记如下...

<asp:RadioButtonList ID="rdlUser" AutoPostBack="true" OnSelectedIndexChanged="rdlUser_SelectedIndexChanged"></asp:RadioButtonList> 

在 Day UserControl 中从数据库中创建了 4 个用户类型 rdlUser。下面给出了用户类型...

rdlUser_0 - Normal User
rdlUser_1 - Supervisor
rdlUser_2 - Admin
rdlUser_3 - Super User

我怎样才能将 class NormalUser 应用到 "Normal User" 并从具有相关属性的代码中以 SpecialUser class 的形式休息。

RadioButtonList 生成 HTML 个包含输入和标签的输出。

<input id="rdlUser_0" type="radio" name="rdlUser_0" value="0">
<label for="rdlUser_0">Normal User</label>

最佳做法,将选项的样式添加到 css 文件。

#rdlUser input[value='0'] + label {color:red}

或者

#rdlUser label:nth-child(1){color:red}

您可以循环所有 ListItem 个元素。

        foreach (ListItem item in rdlUser.Items)
        {
            if (item.Text == "Normal User")
            {
                item.Attributes.Add("class", "NormalUser");
            }
            else
            {
                item.Attributes.Add("class", "SpecialUser");
            }
        }

请注意,这会将 <span class="NormalUser"> 包裹在 RadioButton 周围,因此您可能需要更改 css。

.SpecialUser label { color:red; }