2011-09-08 44 views
0

我有下面的代码:Image.ImageUrl不工作(C#,asp.net)

<asp:ListView ID="LV1" runat="server" DataSourceID="LinqDataSource"> 
<ItemTemplate>  
    <asp:Image ID="Image1" Width="100px" Height="100px" runat="server" /> 
    //....and so on till the 
</asp:ListView> 

背后的代码:

protected void checkTheImage() 
    { 
     foreach (ListViewItem item in LV1.Items) 
     { 
      ((Image)item.FindControl("Image1")).ImageUrl = "~/noImage.jpg"; 
     } 
    } 

和页面加载:

protected void Page_Load(object sender, EventArgs e) 
    { 
     checkTheImage(); 
    } 

问题是 - noImage.jpg不显示...为什么?

+0

可能是坏道。浏览器中图像的URL是什么?这是预期的网址吗?图像是否存在于给定的URL? – Zabba

+0

是否有任何图像控件在'foreach'中获取图像值? – Rev

+0

尝试使用Server.MapPath()来玩,也许它帮助 – sll

回答

3

不确定您的标记是否正常,您还应该在某处关闭ItemTemplate标记...请更新您的标记。

只是为了尝试一下,如果你移动checkTheImage();在Page_PreRender中?

有没有你DataBind ListView在你的页面生命周期中的任何地方?

+0

我有ItemTemplate结束标记。这是在Page_PreEnder上工作的! – Oshrib

+1

很酷,所以请投我:) –

0

可能是你需要重新绑定ListView。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
     LV1.DataBind(); 
     checkTheImage(); 
     } 
    }