public class MyCustomControl : Control, IStylesheet
{
[
Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("FullName"),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
]
public FullName MyFullName {get; set;}
protected override void Render(HtmlTextWriter writer)
{
// I want to access MyFullName from .aspx here
}
}
public class FullName
{
public string Firstname {get; set;}
public string Lastname {get; set;}
}
.aspxのマークアップカスタムコントロールのレンダリングメソッドの内部
お試しthis記事です。あなたの状況に適用された記事の抜粋は以下の通りです。
MyFullNameプロパティとMyFullNameクラスのプロパティは、デザイン時には、必要が次の例に示すように、コントロールのタグ内持続性を有効にするには、属性:
<aspSample:MyCustomControl >
<MyFullName FirstName="Jody" LastName="Foster" />
</aspSample:MyCustomControl>
MyCustomControl制御店舗での単純なプロパティをViewState辞書。ただし、MyCustomControlコントロールは、FullNameプロパティのカスタム状態管理を実装して、ポストバック間でプロパティの状態を管理する必要があります。
「カスタムコントロールクラス内の複合プロパティにアクセスできません」という意味はどうですか?なぜあなたはこれをやり遂げることができないのですか?私は、[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)、MergableProperty(false)、PersistenceMode(PersistenceMode.InnerProperty)]というプロパティを定義しています。 –