如何動態變更網頁中 HTML 控制項的 Class 屬性

本文介绍在ASP.NET中如何使用HtmlGenericControl及Attributes.Add方法来动态地设置HTML控件的class属性,解决Control控件无法直接修改样式的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某些 HTML 控制項其實並沒有 WebControls 的對應,例如:

<ul runat="server" id="ul">
   <li runat="server" id="li1">
   <li runat="server" id="li2">
</ul>

雖然把個別控制項加上了 id 和 runat="server" 標記,但我們會在程式中仍然無法直接完全控制這些控制項,因為我們找不到對應的伺服器控制項。不過我們可以使用一個通用的 Control 控制項來定位上面範例中的 li 控制項:

Dim li As Control = ul.FindControl("li1")

不過問題來了。你將會發現你無法使用像 li.CssClass = "myClass" 這樣的指令來指定 li1 的 class 屬性。不僅如此,Control 控制項也沒有 class 屬性,所以你會發現連動態指定像 li 這種控制項的 class 屬性都辦不到。

在這種情形下,你可以改用 HtmlGenericControl 控制項,再使用 Attributes.Add 方式,如此就可以了,如以下範例:

Dim li As HtmlGenericControl = ul.FindControl("li1")
If li IsNot Nothing Then li.Attributes.Add("class", "myClass")

 

转自:http://www.dotblogs.com.tw/johnny/archive/2010/01/23/13238.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值