1

ユーザーの写真画像をバインドしているリストビューがあります。ただし、 <%#Eval("Photo") %> が null 値であり、ユーザーがまだ写真をアップロードしていないことを意味する場合、デフォルトのパスを表示したい

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

サイトの画像構造:

ここに画像の説明を入力

Web.config:

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