我正在拥有Usercontrol页面(.ascx),其中包含该站点的Header图像。我需要在webform(.aspx)中动态更改Header图像。
我的.Aspx代码:
protected void Page_PreInit(object sender, EventArgs e)
{
Control hdrCtl = null;
try
{
hdrCtl = LoadControl("~/UI/Header.ascx");
if (hdrCtl != null)
{
Image src = (Image)hdrCtl.FindControl("imgHeader");
src.ImageUrl = "~/Content/assets/images/editorial_1.jpg";
}
}
catch (Exception ex)
{
Trace.Write(ex.Message);
}
}
但是图片没有改变......任何人都可以帮我解决问题..
提前致谢
维杰
答案 0 :(得分:0)
这里的问题是你再次加载你的控件 ,并在页面的行中添加:
hdrCtl = LoadControl("~/UI/Header.ascx");
为了使代码按原样运行,它缺少Page.Controls.Add(hdrCtl)
,但我不认为这是你的方式。
我知道您的控件已准备好存在于您的页面中,因此这不是更改图像的方法 要更改自定义控件上已准备好添加的图像,您必须在自定义控件中为图像创建一个参数:
public string cHeaderImage
{
set { imgHeader.ImageUrl = value; }
}
然后你就这么简单了
protected void Page_PreInit(object sender, EventArgs e)
{
// this is the id of your custom control
headerCntrID.cHeaderImage = "~/Content/assets/images/editorial_1.jpg";
}