我正在使用ASP.Net中的自定义DropDownList控件,有人请求用bold字体显示列表中的某些项(注意-控件继承自CompositeDataBoundControl,因此它可以是数据绑定的...而不是DropDownListBox)。控件绑定到一个表,并且表中有一个名为IsUsed的列-如果将其设置为true,列表中相应的项目应该显示为粗体。2(这里需要注意的是,这只能在FireFox中查看)
我的经验都是在中间\后端层,所以表示层对我来说非常陌生-有人能给我指出正确的方向吗?我最初的想法是,在自定义控件的某个地方,我可以访问从数据源返回的所有行,我可以循环通过等,但我不确定是否可能...还有RenderContents,我可以覆盖...看起来很有趣!
4条答案
按热度按时间ykejflvf1#
下面是如何在代码隐藏中完成所需的工作:
从
System.Web.UI.Control
继承的任何控件都具有属性Attributes
,您可以使用该属性添加或追加style
属性。idfiyjo82#
无论你在服务器端使用什么样的控件,它在客户端浏览器中都会被呈现为html,而标准的html下拉列表不支持样式化它的内容,你可以使用JavaScript或jQuery自定义下拉列表控件。
i2loujxw3#
好吧,我想我已经回答了我自己的问题,但它似乎不是很优雅。
我可以写一个新的存储过程来返回我需要在列表中显示的数据,列表将返回ID和DESCRIPTION。然而,描述将是描述加上TRUE或FALSE(取决于表中的标志IsUsed)。然后,在RenderContents中,我可以拆分描述字符串,解析bool,并添加一个样式属性,如果bool为真,则将文本加粗。
2admgd594#
我在Chrome浏览器中尝试了以下代码,它确实有效:(使顶部项目加粗。