asp.net:更改列表框项目的颜色

l--*_*''' 1 html javascript c# sql asp.net

在sql server 2008上的数据源正在填充webform上的列表框.

根据列表框中的文本,我会将该特定项目的背景颜色作为特定颜色

例如,如果这些是列表中的项目:

AA item 1
AA item 2
BB item 3
BB item 4
AA item 5
Run Code Online (Sandbox Code Playgroud)

如果项目以项目开头AA,则制作背景green,如果项目存在,BB则制作它blue

我怎样才能做到这一点?

解决方案可以是客户端或服务器端,对我来说无关紧要

我当前这样做:

function colorproblemlist() {
        ob = document.getElementById('lstProblems');
        for (var i = 0; i < ob.options.length; i++) {
            if (ob.options[i].value.indexOf('AA')!=-1) {
                ob.options[i].style.color = "red";
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

它工作得很棒!!

但是我有以下并发症.

如下所示的第一列:

AA item 1
AA item 2
BB item 3
BB item 4
AA item 5
Run Code Online (Sandbox Code Playgroud)

将不可见

只有第二个可见:

Item 1
Item 2
...
Run Code Online (Sandbox Code Playgroud)

这一栏:

AA
AA
Run Code Online (Sandbox Code Playgroud)

..

是数据库表中从中提取此数据的字段,我需要基于该字段的颜色.

我怎么能这样做?>

Ica*_*rus 5

服务器端方法:

<asp:ListBox ID="prevSubList" runat="server" Height="16px" DataTextField="Key" 
 DataValueField="Value" Width="263px" Rows="1"  
 OnDataBound="prevSubList_DataBound">
</asp:ListBox>
Run Code Online (Sandbox Code Playgroud)

DataBound事件的处理方式如下:

protected void prevSubList_DataBound(object sender, EventArgs e)
{
     foreach (ListItem item in prevSubList.Items)
     {
         if (item.Text.Contains("AA"))
            item.Attributes.Add("style","background-color:green;");
         else if(item.Text.Contains("BB"))
            item.Attributes.Add("style", "background-color:blue;");
     }
}
Run Code Online (Sandbox Code Playgroud)