如何使DropDownList控件以粗体ASP.NET显示一些项目

我正在使用ASP.Net中的自定义DropDownList控件,并且已经请求使用粗体字体显示列表中的某些项目(注意 – 控件inheritance自CompositeDataBoundControl,因此它可以是数据绑定…而不是DropDownListBox)。 控件绑定到一个表,并且表中有一个名为IsUsed的列 – 如果将其设置为true,则列表中的相应项应呈现为粗体。 (这里应该注意,这只能在FireFox中查看。)

我的经验是在中间\后端层,所以表示层对我来说是一个新的 – 有人能指出我正确的方向吗? 我最初的想法是,在自定义控件中的某个地方,我可以访问从数据源返回的所有行,我可以循环等但是我不确定是否可能……还有我可以覆盖的RenderContents ……看起来很有趣!

这是在代码隐藏中如何做你需要的:

var item = new ListItem("MyItem"); item.Attributes.Add("style", "font-weight: bold"); var list = FindControl("DropDownList1"); list.Items.Add(item); 

System.Web.UI.Controlinheritance的任何控件都具有属性Attributes ,您可以使用它来添加或追加style属性。

无论您在服务器端使用哪种控件,它都将在客户端浏览器中呈现为html,标准html下拉列表不支持样式化其内容。 您可以使用JavaScript或jQuery自定义下拉列表控件,而不是这样做。

好吧,我想我已经回答了我自己的问题,但看起来并不优雅。

我可以编写一个新的存储过程来返回我需要在列表中显示的数据,该数据将返回ID和DESCRIPTION。 但是,描述将是描述加上TRUE或FALSE(取决于表中的IsUsed标志)。 然后在RenderContents中我可以拆分描述字符串,解析bool并添加一个样式属性,如果bool为真,则使文本变为粗体…