【发布时间】:2012-10-03 18:18:53
【问题描述】:
我正在努力如何设置一个自定义属性,该属性应该指向我在 ASP.NET 网络控件上的自定义类的一个实例。
Web 控件示例:
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" />
任何人都可以帮助如何做到这一点?
【问题讨论】:
-
为什么必须在标记中?
-
保持后面的代码更干净。
-
我不确定这是不是一个好的推理——试图让代码保持清洁,你就是在搞砸标记。我不一定看到添加一行代码如何使后面的代码变得混乱。
-
我的想法是用户将控件放到 aspx 中并在那里设置其所有属性,而不必去后面的代码做任何其他事情。
标签: c# asp.net custom-controls web-controls