将样式添加到System.Web.UI.Control

时间:2012-07-06 16:09:26

标签: asp.net vb.net attributes styles

我正在从数据库模式构建一大堆不同的控件。 当我在后面的代码中运行控件时,我想将控件和样式(作为数据库中的字符串...例如“color:white; width:50px; height:10px;”)传递给re - 功能。

这就是我认为我应该去做的事情:

 Sub AddStylesToControl(ByRef ctrl As Control, Styles As String)

    'split styles string by semi colon
    Dim StyleArr() As String
    Dim count As Integer
    StyleArr = Styles.Split(";")
    For count = 0 To StyleArr.Length - 1

        '//ctrl.Attributes.Add("style", "color: red;")
        ctrl.Attributes.Add("style", StyleArr(count))
    Next

End Sub

不幸的是,在行“ctrl.Attributes.Add(”style“,StyleArr(count))”我收到一个错误: 'attributes'不是'system.web.ui.control'的成员 我理解这个错误意味着什么,但有没有人知道解决这个问题的方法呢?

非常感谢, 斯科特

1 个答案:

答案 0 :(得分:7)

您应该使用WebControl而不是ControlWebControl源自Control,但包含Attributes属性。

此外,控件的“style”属性应包含一个包含由;分隔的CSS的字符串。因此,将整个字符串传递到数据库中就足够了,您无需再进行任何处理。

所以你的功能应该简单地看起来像......

Sub AddStylesToControl(ByRef ctrl As WebControl, ByVal styles As String)
    ctrl.Attributes("style") = styles
End Sub

我已将其更改为直接设置(而不是Add),因为这会覆盖任何现有的"style"。如果集合中已存在Attributes.Add,则使用"style"将失败。