2

私はデータベーススキーマからさまざまなコントロールを構築しています。コードビハインドのコントロールを実行するときに、コントロールとスタイル(データベースからの文字列として...例: "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」のメンバーではありませんエラーの意味を理解しています、しかし誰かがこれを回避する方法を知っていますか?

どうもありがとう、スコット

4

1 に答える 1

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"

于 2012-07-06T16:13:38.960 に答える