ASP.NetのCompositeControlで「スタイル」プロパティを作成する
-
07-07-2019 - |
質問
新しいCompositeControlの作成に問題があります。
現在、TextBoxから継承するカスタムコントロールがあり、コントロールにはStyleプロパティが定義されていませんが、ページマークアップでプロパティを設定でき、スタイルが正しく適用されます。
カスタムコントロールと同じ機能を持つCompositeControlを作成しようとしていますが、コントロールのStyleプロパティを設定しようとするまですべてが正常に機能します。コンパイル時にこのエラーがスローされます:" The ' Style 'プロパティを宣言的に設定することはできません" 、CompositeControlのコードで' Style 'プロパティを宣言した場合でも(「新しい」キーワードを使用しても)発生し続けます。
一方のコントロールではエラーが発生し、もう一方のコントロールではエラーが発生する理由を理解できません。
あらゆるアドバイスを歓迎します。
ありがとう
解決
「解決済み」それ!
作成している複合コントロールでStyleプロパティを定義する必要はありません。そのままにしておけば、コントロールにスタイルを追加して、コントロールのコードでアクセスできます。
e.g。
<cc1:MyCompositeControl runat="server" Style="background-color:Red" />
そしてMyCompositeControlコードで次のようにアクセスできます:
foreach (string item in Style.Keys)
{
input.Style.Add(item, Style[item]);
}
スタイルを適用したいコントロール(この場合は input コントロール)に設定します。
なぜStyleプロパティを設定できないのかまだ理解できませんが、良いことは必要ないことです。
ご協力ありがとうございます
所属していません StackOverflow