更改复选框列表中所选列表项的背景颜色

时间:2011-06-20 09:26:48

标签: c# asp.net checkboxlist

我在网页中使用了checkboxlist,如下所示:

<asp:CheckBoxList ID="chklstTelpas" runat="server" RepeatDirection="Horizontal" 
                  AutoPostBack="True" Width="594px"
                  OnSelectedIndexChanged="chklstTelpas_SelectedIndexChanged">
    <asp:ListItem Text="TELPAS Speaking" Value="1"></asp:ListItem>
    <asp:ListItem Text="TELPAS Listening" Value="2"></asp:ListItem>
    <asp:ListItem Text="TELPAS Reading" Value="3"></asp:ListItem>
    <asp:ListItem Text="TELPAS Writing" Value="4"></asp:ListItem>
</asp:CheckBoxList>

现在,如果我检查一个列表项,我想为该特定选定项应用一些背景颜色。如果我取消选中,我希望背景保持与最初显示的颜色相同,或者我想删除背景颜色。

5 个答案:

答案 0 :(得分:6)

你可以做这样的事情

        for (int i = 0; i < chklstTelpas.Items.Count; i++)
        {
            if (chklstTelpas.Items[i].Selected)
            {
                chklstTelpas.Items[i].Attributes.Add("style", "background-color: red;");
            }
            else
            {
                chklstTelpas.Items[i].Attributes.Add("style", "background-color: white;");
            }
        }

这将允许您为几个选项着色。如果你使用SelectedIndex,它只会给你最低的索引。

答案 1 :(得分:3)

 protected void chklstTelpas_SelectedIndexChanged(object sender, EventArgs e)
    {
        Control chk = ((Control)sender).FindControl("chk");
        CheckBoxList ch=(CheckBoxList) chk;
        if (ch.Items[ch.SelectedIndex].Selected)
            ch.Items[ch.SelectedIndex].Attributes.Add("Style", "background-color: red;");

    }

希望这会有所帮助!!!

答案 2 :(得分:1)

您可以SelectedIndexChanged上的DropDown活动。

chklstTelpas.Items[chklstTelpas.SelectedIndex].Attributes.Add("style", "background-color:blue;");

答案 3 :(得分:1)

我依旧记得可以通过循环项目来完成,并为已设置属性的已检查项目

CheckBoxItem.Attributes.Add("Style", "color: red;")

答案 4 :(得分:1)

<asp:CheckBoxList ID="chklstTelpas" runat="server" RepeatDirection="Horizontal" 
              AutoPostBack="True" Width="594px" 
               OnSelectedIndexChanged="chklstTelpas_SelectedIndexChanged" CssClass="multiplus">
<asp:ListItem Text="TELPAS Speaking" Value="1"></asp:ListItem>
<asp:ListItem Text="TELPAS Listening" Value="2"></asp:ListItem>
<asp:ListItem Text="TELPAS Reading" Value="3"></asp:ListItem>
<asp:ListItem Text="TELPAS Writing" Value="4"></asp:ListItem>

将css类添加到checkboxlist,然后将jquery代码写为:

var selectedBox = 0;
var lastChecked = null;
$(document).ready(function () {
    $(".multiplus input:checkbox").click(
                function () {

                        if ($(this).attr("checked")) {
                            $(lastChecked).attr("checked", false).parent().css({ "background-color": "#FFF", "font-weight": "normal" });
                            lastChecked = this;

                    }
                    if ($(this).attr("checked")) {
                        $(this).parent().css({ "background-color": "#FFC", "font-weight": "bold" });
                        selectedBox++;
                    } else {
                        $(this).parent().css({ "background-color": "#FFF", "font-weight": "normal" });
                        selectedBox--;
                    }
                }
            );
});