Internet Explorer 6.0IEVisual Studio .NET 2003WebForms.NET 1.1Visual Studio 2005.NET 2.0CSS中级开发Visual StudioJavascriptWindows.NETVisual BasicASP.NET
DropDownList 的 ListItem 控件背景格式化





2.00/5 (5投票s)
一篇关于解决 ASP.NET DropDownList ListItem 控件背景颜色设置问题的文章。
引言
如果您发现了这篇文章,这意味着您无法使 ListItem
控件的背景样式与 DropDownList
等 Web 控件正常工作。 确实,它应该可以工作,因为 ListItem
控件确实包含一个 Attribute
集合,但出于某种原因,任何样式或提供的属性都无法生效。 好吧,这里可以找到一个更繁琐的解决方案:Scott Mitchell 的列表控件项目和属性。
然而,我的解决方案同样有效,但有一个(已知)缺陷。 无法使用 AutoPostBack
属性。 我相信有一些 JavaScript 功能可以实现此功能,因此我们不必将其视为一个主要问题。 在这一点上,您可能想知道为什么 AutoPostBack
属性不可用。 我的问题是,“如果 ListItem
属性不起作用,您为什么要使用 DropDownList
?”。
如果 DropDownList
的 ListItem
属性的处理方式是一个明显的错误,那么 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
就这些
总是有解决方案,即使只是一个快速修复。