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

qmb5sa22  于 2023-02-17  发布在  .NET
关注(0)|答案(4)|浏览(156)

我正在使用ASP.Net中的自定义DropDownList控件,有人请求用bold字体显示列表中的某些项(注意-控件继承自CompositeDataBoundControl,因此它可以是数据绑定的...而不是DropDownListBox)。控件绑定到一个表,并且表中有一个名为IsUsed的列-如果将其设置为true,列表中相应的项目应该显示为粗体。2(这里需要注意的是,这只能在FireFox中查看)
我的经验都是在中间\后端层,所以表示层对我来说非常陌生-有人能给我指出正确的方向吗?我最初的想法是,在自定义控件的某个地方,我可以访问从数据源返回的所有行,我可以循环通过等,但我不确定是否可能...还有RenderContents,我可以覆盖...看起来很有趣!

ykejflvf

ykejflvf1#

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

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属性。

idfiyjo8

idfiyjo82#

无论你在服务器端使用什么样的控件,它在客户端浏览器中都会被呈现为html,而标准的html下拉列表不支持样式化它的内容,你可以使用JavaScript或jQuery自定义下拉列表控件。

i2loujxw

i2loujxw3#

好吧,我想我已经回答了我自己的问题,但它似乎不是很优雅。
我可以写一个新的存储过程来返回我需要在列表中显示的数据,列表将返回ID和DESCRIPTION。然而,描述将是描述加上TRUE或FALSE(取决于表中的标志IsUsed)。然后,在RenderContents中,我可以拆分描述字符串,解析bool,并添加一个样式属性,如果bool为真,则将文本加粗。

2admgd59

2admgd594#

我在Chrome浏览器中尝试了以下代码,它确实有效:(使顶部项目加粗。

ddlTest.Items.FindByValue("0").Attributes.Add("style", "font-weight:bold");

相关问题