65.9K
CodeProject 正在变化。 阅读更多。
Home

DropDownList 的 ListItem 控件背景格式化

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (5投票s)

2006年2月24日

CPOL

1分钟阅读

viewsIcon

57739

一篇关于解决 ASP.NET DropDownList ListItem 控件背景颜色设置问题的文章。

引言

如果您发现了这篇文章,这意味着您无法使 ListItem 控件的背景样式与 DropDownList 等 Web 控件正常工作。 确实,它应该可以工作,因为 ListItem 控件确实包含一个 Attribute 集合,但出于某种原因,任何样式或提供的属性都无法生效。 好吧,这里可以找到一个更繁琐的解决方案:Scott Mitchell 的列表控件项目和属性

然而,我的解决方案同样有效,但有一个(已知)缺陷。 无法使用 AutoPostBack 属性。 我相信有一些 JavaScript 功能可以实现此功能,因此我们不必将其视为一个主要问题。 在这一点上,您可能想知道为什么 AutoPostBack 属性不可用。 我的问题是,“如果 ListItem 属性不起作用,您为什么要使用 DropDownList?”。

如果 DropDownListListItem 属性的处理方式是一个明显的错误,那么 System.Web.UI.HtmlControls.HtmlSelect 控件的 ListItem 又如何呢? 我相信您知道使用 ASP.NET 控件绑定数据的所有方法,因此我相信您会将此示例的简单性应用于更高级的方法。

ASPX

<form id="Form1" method="post" runat="server">
  <select name="ddlTest" id="ddlTest" runat="server" style="width:125px">
  </select>
</form>

代码后置

Protected WithEvents ddlTest As System.Web.UI.HtmlControls.HtmlSelect

Private Sub Page_Load(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Me.IsPostBack Then
        Dim l As ListItem

        l = New ListItem("Lions", "1")
        l.Attributes.Add("style", "background: yellow;")
        ddlTest.Items.Add(l)

        l = New ListItem("Tigers", "2")
        l.Attributes.Add("style", "background: orange;")
        ddlTest.Items.Add(l)

        l = New ListItem("Bears", "3")
        l.Attributes.Add("style", "background: brown;")
        ddlTest.Items.Add(l)

        l = New ListItem("Oh My!", "4")
        l.Attributes.Add("style", "background: red; color: white;")
        ddlTest.Items.Add(l)
    End If
End Sub

就这些

总是有解决方案,即使只是一个快速修复。

© . All rights reserved.