【发布时间】:2021-02-22 21:17:08
【问题描述】:
目标/预期:根据价值为每个项目显示不同的颜色。如果值为 True,则 ListItem 应为绿色,而值为 False 的 ListItem 应为红色。我想要两个颜色。无论默认值是什么,仍应显示颜色。 注意:我想使用纯asp.net/c#,我不想实现任何jQuery来实现这一点。
实际结果/问题:它只显示下拉菜单中相反值的颜色。注意默认是白色的黑色文本,即使它应该有颜色:
但它只显示颜色,直到我点击下拉菜单。在此示例中,来自数据库的值 False 应为红色。 True 应该是绿色的。 True 为绿色,但 False(默认/选定值)没有颜色变化:
C#:
M3.Text = professorStatsListDto.professorStatsList[2].LastName.ToString();
LT3.Text = professorStatsListDto.professorStatsList[2].Available.ToString();
RT3.Text = (!professorStatsListDto.professorStatsList[2].Available).ToString();
img3.ImageUrl = professorAvatar;
row3.Visible = true;
if (LT3.Value == "False")
{
LT3.Attributes.Add("style", "color: red;");
RT3.Attributes.Add("style", "color: green;");
}
我从set Different colors in asp:DropDownList Items得到这个概念
- 我还尝试将它作为一个类添加: LT3.Attributes.Add("class", "dropdownRed");但这并没有做任何事情。根据programmatically add css class to ListItem
- 我也尝试过 .CssClass,但您不能将其应用于 ListItems
- 我也尝试过应用到 DropdownList,但这使得所有项目的颜色都相同,这不是我想要的
HTML/ASPX:
<asp:Panel ID="row3" runat="server" Visible="false" CssClass="avMargin">
<asp:Image ID="img3" runat="server" CssClass="professoricon"/><sup><asp:Label ID="L3" runat="server" Font-Size="17px" /></sup> <asp:Label ID="M3" runat="server" CssClass="professorname" />
<asp:DropdownList runat="server" id="ddlAvailability3" AutoPostBack="true" OnSelectedIndexChanged="ddlAvailability_OnSelectedIndexChanged" CssClass="dropdowns">
<asp:ListItem ID="LT3"></asp:ListItem>
<asp:ListItem ID="RT3"></asp:ListItem>
</asp:DropdownList>
</asp:Panel>
CSS(可能不相关,因为我使用了代码隐藏):
.dropdowns {
position: absolute;
right: 20px;
}
.dropdownRed {
position: absolute;
right: 20px;
color:red;
}
.dropdownGreen {
position: absolute;
right: 20px;
color:green;
}
【问题讨论】:
-
你之前问过similar question。正如所有答案所暗示的那样,如果没有 jQuery,这不是你能做到的。
-
澄清一下:那是为了在下拉列表中放置一个圆圈。这是针对文本本身的。