0

我正在努力如何设置一个自定义属性,该属性应该指向我在 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" />

谁能帮助如何做到这一点?

4

1 回答 1

1

您只是不能在控件标记标记上分配它,标记标记呈现为 html 并且没有这样做的逻辑,html 不会解释GetFactory. 您可以做的是在您的标记上设置 if,而不是控制标记属性,而是在代码括号内设置,如下所示:

<%MyCustomControl.Factory = this.GetFactory;%>
于 2012-10-03T18:32:27.757 回答