我正在从数据库模式构建一大堆不同的控件。 当我在后面的代码中运行控件时,我想将控件和样式(作为数据库中的字符串...例如“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'的成员 我理解这个错误意味着什么,但有没有人知道解决这个问题的方法呢?
非常感谢, 斯科特
答案 0 :(得分:7)
您应该使用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"
。如果集合中已存在Attributes.Add
,则使用"style"
将失败。