2016-04-15 15 views
1

Ich versuche, die background-image eines div innerhalb ItemTemplate eines DataList an den Dateinamen in column image_path im datatable zu setzen, wie die Listenansicht der Datenquelle verwendet wird.background-image wird nicht in div angezeigt DataList ItemTemplate?

Hier ist der Code, den ich derzeit verwende, die zwei datalists enthält. Es basiert auf dem Code hier: background-image eval

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWebApp.Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:DataList ID="DataListDiv" runat="server" RepeatColumns="5"> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text="My lagel"></asp:Label> 
       <div style='width:195px;height:162px;background-position:center;background-image:url(<%# Eval("image_path","~/Styles/Images/{0}") %>)'></div> 
      </ItemTemplate> 
     </asp:DataList> 

    <asp:DataList ID="DataListImages" runat="server" RepeatColumns="5"> 
      <ItemTemplate> 
       <asp:ImageButton ID="ImageButton2" ImageUrl='<%# Eval("image_path","~/Styles/Images/{0}")%>' runat="server" /> 
      </ItemTemplate> 
    </asp:DataList> 



    </div> 
    </form> 
</body> 
</html> 

Das Problem ist, dass DataListDiv nicht angezeigt wird. Die 2. datalist (DataListImages) wird angezeigt, verwendet jedoch eine ImageButton. Beide verwenden das gleiche eval, so dass ich weiß, dass die Bindung korrekt ist.

Dies ist, was die datatable wie folgt aussieht:

BedNum  Waiter  image_path 
201  Joe  Red.png 
202  Jim  Green.png 
203  Mary  Red.png 
204  Carl  Yellow.png 
+0

Wenn ich Ihren Code testen , das Bild wird immer angezeigt. Wenn Sie Labels oder TextBoxes in der 'ItemTemplate' von' DataListDiv' hinzufügen, um den Wert der anderen Felder anzuzeigen, sehen Sie sie? – ConnorsFan

+0

Ja, ich sehe das Etikett, aber ich sehe das Bild nicht. Siehst du beide Datalisten mit Bildern? – rbhat

+0

Ich postete alle HTML. Vielleicht stimmt etwas nicht woanders? – rbhat

Antwort

0

ich für die div den relativen Pfad in background-image:url Wechsel endete die durch die Beseitigung ~/:

<asp:DataList ID="DataListDiv" runat="server" RepeatColumns="5"> 
    <ItemTemplate> 
     <div style='width:195px;height:162px;background-position:center;background-image:url(<%# Eval("image_path","Styles/Images/{0}") %>)'></div> 
    </ItemTemplate> 
</asp:DataList> 
Verwandte Themen