2016-11-17 82 views
1

我想顯示圖片從文件夾圖像與中繼器,但probelm圖片無法顯示我不知道爲什麼。圖像不顯示與asp.net中繼器

<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

請張貼**呈現您的網頁的HTML **。 – Dai

+0

更改'<%#Container.DataItem%>'到'<%#Eval(「columnName」)%> – VDWWD

+0

@VDWWD我從文件夾而不是數據庫表中檢索圖像 – hashim

回答

3

您的代碼的問題是,您正在使用圖像的物理路徑。你將不得不提供相對於中繼器的路徑。改變你的代碼如下,它應該工作,我認爲:

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

是的,它的作品謝謝:) – hashim

0

你已經錯過了回傳屬性。請使用下面的代碼。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     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 = list; 
     RepaterImages.DataBind(); 
    } 
} 
+0

我試過這個不行,但我認爲這個問題表單路徑,但我不知道 – hashim

+0

以前的代碼是不是數據源使用圖像屬性,而不是arrayList。更新了代碼檢查現在 – vignesh