如何更改我的ComboBoxList中项目的颜色

时间:2015-09-28 03:56:47

标签: c# combobox comboboxlist

我有一个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'   不能像方法一样使用。

出了什么问题?

4 个答案:

答案 0 :(得分:4)

也许:

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

答案 1 :(得分:0)

使用ForEach代替For并尝试以下代码。

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

答案 2 :(得分:0)

你可以这样做......它在测试中工作正常..

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

答案 3 :(得分:0)

代码中有两个问题。

  1. 而不是使用RoundBracket ()使用SquareBraket []()在这种情况下效果不佳。
  2. 示例使用CheckBoxList1.Items[i].Selected代替CheckBoxList1.Items(I).Selected

    1. 使用Add("style", "Color=Red;");
    2. 而不是使用Add("style", "Color: Red");添加颜色