如何改变一个项目的颜色在我的组合列表

本文关键字:颜色 我的 列表 组合 项目 何改变 改变 一个 | 更新日期: 2023-09-27 18:14:51

我有一个ComboBoxList,它有一些项目和一个按钮在它下面。在单击事件时,我想要更改项目的文本颜色,如果选中了(将文本颜色更改为红色或绿色)。但如果项目的颜色已经改变(为红色或绿色),并且项目在第二轮中已取消选中,则颜色应恢复为原始颜色。以下是我尝试的代码片段。

ASPX

<body>
    <form id="form1"
          runat="server">
        <div>
            <asp:checkboxlist runat="server"
                              EnableViewState="true"
                              id="cbl" />
            <asp:Button ID="Button1"
                        runat="server"
                        Text="Button"
                        OnClick="Button1_Click" />
        </div>
    </form>
</body>

服务端

protected void Button1_Click(object sender, EventArgs e)
{
    for ( int i =0; i< count; i++)
    {
        if (this.ColumnsList.Items(i).Selected)
        {
            this.ColumnsList.Items(i).Attributes.Add("style", "Color=Red;");
        }
    }
}

错误信息是

不可调用的成员'System.Web.UI.WebControls.ListControl.Items'不能像方法一样使用

怎么了?

如何改变一个项目的颜色在我的组合列表

Maybe:

    if (this.ColumnsList.Items[i].Selected)
    {
        this.ColumnsList.Items[i].Attributes.Add("style", "color: red;");
    }

ForEach代替For并尝试下面的代码

foreach (ListItem item in this.ColumnsList.Items)
{
    if (item.Selected)
    {
        item.Attributes.Add("style", "Color: Red");
    }
}

代码中的两个问题。

  1. SquareBraket []代替RoundBracket ()()在这种情况下不能很好地工作。

示例使用CheckBoxList1.Items[i].Selected代替CheckBoxList1.Items(I).Selected

  • 代替使用Add("style", "Color=Red;");添加颜色,使用Add("style", "Color: Red");
  • 你可以这样做…它在测试中运行良好…

    protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <CheckBoxList1.Items.Count; i++)
        {
            if (CheckBoxList1.Items[i].Selected)
            {
                CheckBoxList1.Items[i].Attributes.Add("style", "color:red");
            } 
        }
    }