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

时间:2010-05-25 09:45:45

标签: c# .net asp.net drop-down-menu

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

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

3 个答案:

答案 0 :(得分:3)

这是如何在代码隐藏中完成所需的工作:

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

var list = FindControl("DropDownList1");
list.Items.Add(item);

System.Web.UI.Control继承的任何控件都具有属性Attributes,您可以使用该属性添加或附加style属性。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

好吧我想我已经回答了我自己的问题,但它似乎并不优雅。

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