2016-11-17 4 views
1

Ich versuche, Bilder aus Ordner Bilder mit einem Repeater anzuzeigen, aber die Probelm Bilder können nicht angezeigt werden, ich weiß nicht warum.Bilder nicht mit asp.net Repeater

<div data-u="slides" style="cursor: default; position: relative; top: 0px; left: 0px; width: 800px; height: 356px; overflow: hidden;"> 
 

 
           <asp:Repeater runat="server" ID="RepaterImages"> 
 
            <ItemTemplate> 
 
             <div runat="server" data-p="144.50"> 
 
              
 
              <img id="Image" runat="server" data-u="image" style="Width:120px;" src='<%#Container.DataItem %>'/>           
 

 
             </div> 
 
            </ItemTemplate> 
 
           </asp:Repeater> 
 
          </div>

protected void Page_Load(object sender, EventArgs e) 
{ 
    int id = Convert.ToInt32(Request.QueryString["id"]); 

    var path = Server.MapPath("ProjectsImages/ "); 

    var images = Directory.GetFiles(path,id+"*"); 

    ArrayList list = new ArrayList(); 

    foreach (var img in images) 
    { 

     list.Add(img); 

    } 
    RepaterImages.DataSource = images; 
    RepaterImages.DataBind(); 
} 
+0

Bitte posten Sie die ** gerenderten HTML ** Ihrer Seite. – Dai

+0

Ändern Sie '<% # Container.DataItem%>' in '<% # Eval (" columnName ")%>' – VDWWD

+0

@VDWWD ich die Bilder aus dem Ordner nicht Datenbanktabelle – hashim

Antwort

3

Das Problem mit Ihrem Code ist, verwenden Sie den physischen Pfad des Bildes. Sie müssen einen relativen Pfad zum Repeater angeben. Ändern Sie Ihren Code wie folgt, es sollte funktionieren Ich denke:

protected void Page_Load(object sender, EventArgs e) 
     { 
      try 
      { 
       int id = Convert.ToInt32(Request.QueryString["id"]); 
       string relativePath = "/ProjectsImages/"; 
       var path = Server.MapPath(relativePath); 
       var images = Directory.GetFiles(path, id + "*").Select(x => 
       { 
        var arrPath = x.Split('\\'); 
        string imgName = arrPath[arrPath.Length - 1]; 
        return relativePath + imgName; 
       }); 
       RepaterImages.DataSource = images; 
       RepaterImages.DataBind(); 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 
+0

ja es funktioniert Danke :) – hashim

0

Sie haben die Postback-Eigenschaft verpasst. Bitte verwenden Sie den folgenden Code.

+0

abrufen Ich habe versucht, dies funktioniert nicht, aber ich denke, dieses Problem Form Pfade, aber ich bin mir nicht sicher, – hashim

+0

zuvor wurde der Code nicht Datenquelle verwendet Bilder Attribut anstelle von ArrayList. Aktualisiert den Code jetzt prüfen – vignesh

Verwandte Themen