2015-09-28 34 views
1

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

怎么回事?

回答

0

使用ForEach代替For和尝试下面的代码。

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

可能:

if (this.ColumnsList.Items[i].Selected) 
    { 
     this.ColumnsList.Items[i].Attributes.Add("style", "color: red;"); 
    } 
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"); 
     } 
    } 
} 
+0

这不会用于该用途的工作case ..因为这只适用于前三项..休息是什么..这是不完整的答案.. –

+0

哦!...这只是一个例子...我认为你可以解决for循环布尔值..这是你完整的答案......我有纠正了答案..请看看...... :) –

0

两个问题在你的代码。

  1. 而不是使用RoundBracket()使用SquareBraket []()在此情况下无法正常工作。

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

  • 代替使用Add("style", "Color=Red;");添加颜色的,使用Add("style", "Color: Red");
  • 相关问题