我有一个列表视图,其中一个是绑定我的用户的照片图像。但是,如果<%#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>
答案 0 :(得分: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; }
}
网站的图片结构:
Web.config:
<appSettings>
<add key="USER_PROFILEPHOTO_PATH" value="~/Images"/>
<add key="USER_DEFAULTPHOTO_PATH" value="~/Images/pic3.png"/>
</appSettings>