コントロールがUpdatePanelに追加された場合でも、含まれているページの背後にあるコードからアクセスできます。これはどのように達成されますか?カスタムコントロールの開発者は同じことを行うことができますか?
言い換えると、ITemplateインターフェイスを使用してテンプレートコントロールを開発する場合、(UpdatePanelのように)それを接続して、含まれているページから(宣言的に)含まれているコントロールにアクセスできるようにする方法はありますか?
コントロールがUpdatePanelに追加された場合でも、含まれているページの背後にあるコードからアクセスできます。これはどのように達成されますか?カスタムコントロールの開発者は同じことを行うことができますか?
言い換えると、ITemplateインターフェイスを使用してテンプレートコントロールを開発する場合、(UpdatePanelのように)それを接続して、含まれているページから(宣言的に)含まれているコントロールにアクセスできるようにする方法はありますか?
これを実現するために、ITemplateプロパティにTemplateInstanceAttributeを追加できます。これには、コントロールをページレベルに昇格させる効果があります。
[TemplateInstance(TemplateInstance.Single)]
public ITemplate AnonymousTemplate {
get { ... }
set { ... }
}
MSDNから:
TemplateInstanceAttributeクラスを使用すると、テンプレートプロパティを、単一または複数のインスタンス化を許可するプロパティとしてマークできます。単一のインスタンス化のみを許可するテンプレートは、その中に含まれるコントロールを参照することができます。ZoneTemplateプロパティは、1回だけインスタンス化できるプロパティの例です。