如何通过标记在ASP.NET WebControl上设置自定义对象属性

时间:2012-10-03 18:18:53

标签: c# asp.net custom-controls web-controls

我正在努力设置一个自定义属性,该属性假定指向ASP.NET webcontrol上的自定义类的实例。

网页控件示例:

public class CustomControl : System.Web.UI.WebControls.Panel
{
  public IFactory Factory { get; set; }
}

代码背后:

public partial class Main : System.Web.UI.Page
{        
  public IFactory GetFactory { 
    get { return new CustomFactory(); } 
  }
}

public class CustomFactory : IFactory {}

自定义工厂在后面的代码上初始化。在我的标记中(不在后面的代码中),我需要将CustomControl上的Factory属性设置为我后面的代码中的实例。 我试过的内联代码的任何变体都不起作用:

<asp:CustomControl ID="MyCustomControl" Factory="<%GetFactory%>" runat="server" />
<asp:CustomControl ID="MyCustomControl" Factory="<%=GetFactory%>" runat="server" />

任何人都可以协助如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您无法在控制标记标记上分配它,标记标记呈现为html并且没有逻辑可以这样做,html不会解释GetFactory的结果。 您可以做的是在标记上设置if,而不是控制标记属性,但在代码括号内设置如下:

<%MyCustomControl.Factory = this.GetFactory;%>