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)
..
是数据库表中从中提取此数据的字段,我需要基于该字段的颜色.
我怎么能这样做?>
服务器端方法:
<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)