从页面动态更改 .ascx 页面中的图像 URL.aspx



我有一个用户控制页面(.ascx),其中包含网站的标题图像。我需要在网络表单(.aspx)中动态更改标题图像。

我。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);
   }
}

但形象没有改变...谁能帮我找出问题所在。

提前致谢

维杰

您在此处的问题是再次加载控件,并且没有在页面的行中添加它:

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";
}

最新更新