繁体   English   中英

如何在设计时初始化我的Web控件属性?

[英]How to initialize my web control properties at design-time?

当将Web控件放置在设计器区域时,我需要一种初始化其属性的方法。 作为“初始化”,我的意思是:如果我的控件具有属性Prop1。 我需要为Prop1分配一个值,并且需要将该值保留在ASPx上。

我尝试了以下方法:

  1. 在ControlDesigner上实现InitializeNewComponent:永远不会调用此方法。 似乎是个错误。
  2. 在ControlDesigner上实现Initialize:调用此方法,但是在某种程度上,Visual Studio不允许我在此阶段更改控件的属性。
  3. 创建一个IComponentChangeService.ComponentAdded处理程序(应该在每次创建任何控件时调用该处理程序)。 永远不会调用此处理程序。

我的问题:如何初始化控件属性?

PS:我知道如何设置控件的属性。 我使用以下在智能标记上正常运行的代码:

PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.Component)["Prop1"];
descriptor.SetValue("Value");

编辑

我忘了提到我不能使用ToolBoxData,因为我需要进行处理以确定该属性的值

[ToolboxData("<{0}:MyControl runat=\"server\" Prop1=\"Value\" />")]
public class MyControl
{
}
descriptor.SetValue("Value");

没有这种方法。 MSDN我也不太了解您为什么要使用反射来设置已知类型的属性?

也许这可以对您有所帮助: ASP.NET控件开发速成班:设计时功能和功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM