max*_*axp 8 c# asp.net user-controls resolve
如果我传递包含a 的派生类testAa PlaceHolder,其中 Hyperlinkurl以波浪号开头,则会正确解析它.然而,当我传递testB
(相同于它继承
System.Web.UI.UserControl)相同时PlaceHolder它呈现它的字面意思(不转换/解析'〜')
有任何想法吗?
public class testA : System.Web.UI.Control
{
public System.Web.UI.WebControls.PlaceHolder plc { get; set; }
protected override void OnLoad(EventArgs e)
{
if (plc != null)
this.Controls.Add(plc);
base.OnLoad(e);
}
}
public class testB : System.Web.UI.UserControl
{
public System.Web.UI.WebControls.PlaceHolder plc { get; set; }
protected override void OnLoad(EventArgs e)
{
if (plc != null)
this.Controls.Add(plc);
base.OnLoad(e);
}
}
Run Code Online (Sandbox Code Playgroud)
这是ASP.NET
当你继承System.Web.UI.UserControl,不要你的控制与关联ascx那么你的控制文件TemplateSourceVirtualDirectory不会被设置,这是由所需的ResolveClientUrl方法-如果null或空的URL将返回原样.
要解决您的问题,只需设置AppRelativeTemplateSourceDirectory:
public class testB : System.Web.UI.UserControl
{
public System.Web.UI.WebControls.PlaceHolder plc { get; set; }
protected override void OnLoad(EventArgs e)
{
if (plc != null)
{
this.AppRelativeTemplateSourceDirectory =
plc.AppRelativeTemplateSourceDirectory;
this.Controls.Add(plc);
}
base.OnLoad(e);
}
}
Run Code Online (Sandbox Code Playgroud)