我正在从数据库架构构建一大堆不同的控件。当我在代码后面运行控件时,我想传递控件和样式(作为数据库中的字符串......例如。"颜色:白色;宽度:50px;高度:10px;"(到可重用的功能。
这就是我认为我应该这样做的方式:
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((" 我收到一个错误:"属性"不是"system.web.ui.control"的成员我明白错误的含义,但是有谁知道解决这个问题的方法吗?
非常感谢,斯科特
你应该使用 WebControl
而不是 Control
。 WebControl
派生自Control
,但包括Attributes
属性。
此外,控件的"style"属性应包含一个字符串,其中包含由 ;
分隔的 CSS。 因此,在数据库中传递整个字符串就足够了,您无需再进行任何处理。
所以你的函数应该看起来像...
Sub AddStylesToControl(ByRef ctrl As WebControl, ByVal styles As String)
ctrl.Attributes("style") = styles
End Sub
我已将其更改为直接设置(而不是Add
(,因为这将覆盖任何现有的"style"
。 如果集合中已存在"style"
,则使用 Attributes.Add
将失败。