1

我有一个列表视图,其中一个正在绑定我用户的照片图像。但是,如果 <%#Eval("Photo") %> 是一个空值,这意味着用户还没有上传照片,我想显示一个默认路径是

ConfigurationManager.AppSettings["USER_DEFAULTPROFILEPHOTO_PATH"]%>

这是这里的行,它不会引发任何错误,但现在图像都是空白的。任何人都可以提供帮助?谢谢。

<a href="ProfilePage.aspx?user=<%#Eval("UserName") %>" target="_parent"><img src="<%#Eval("Photo") %> != null ? <%= ConfigurationManager.AppSettings["USER_PROFILEPHOTO_PATH"]%>/<%#Eval("UserName") %>/<%#Eval("Photo") %> : <%= ConfigurationManager.AppSettings["USER_DEFAULTPHOTO_PATH"]%>" class="tipTip" title="<%#Eval("Name") %>" style="border: 1px solid #B6B6B6; height: 55px; width: 50px" alt=""></a>
4

1 回答 1

1

您的源绑定不正确,试试这个:

ASPX:

<asp:ListView ID="lvImages" runat="server">
    <ItemTemplate>
        <img alt="profilePic" style="width: 30px; height: 30px;" runat="server" src='<%# Eval("Photo") != null ? String.Format("{0}\\{1}\\{2}",ConfigurationManager.AppSettings["USER_PROFILEPHOTO_PATH"].ToString(),Eval("UserName"),Eval("Photo")) : ConfigurationManager.AppSettings["USER_DEFAULTPHOTO_PATH"].ToString() %>' />
    </ItemTemplate>
</asp:ListView>

后面的代码(在我这边重新创建以进行测试):

public partial class Home : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            lvImages.DataSource = new List<MyImage>
            {
                new MyImage{UserName="Deni",Photo="pic1.jpg"},
                new MyImage{UserName="Chad",Photo="pic2.jpg"},
                new MyImage{Photo=null},
            };
            lvImages.DataBind();
        }
    }
}

public class MyImage
{
    public string UserName { get; set; }
    public string Photo { get; set; }
}

网站图片结构:

在此处输入图像描述

网络配置:

  <appSettings>
    <add key="USER_PROFILEPHOTO_PATH" value="~/Images"/>
    <add key="USER_DEFAULTPHOTO_PATH" value="~/Images/pic3.png"/>
  </appSettings>
于 2013-01-15T20:58:35.167 回答