2014-10-06 24 views
0

我想設計一個照片管理器網站應用程序,所以我需要基於文件夾名稱顯示文件夾中的所有照片,並只使用1 aspx頁面。 我發現了許多tutorail,可以工作,以顯示文件夾中的所有照片,但我不知道如何顯示在文件夾中的照片選擇galery,例如:我有一個主機服務器上的文件夾照片,它有2個子文件夾是:動物和花卉。當我點擊動物文件夾時,所有動物照片顯示在網頁上等點擊花文件夾時,花卉照片將顯示。在動態文件夾中顯示照片asp.net

這裏我的代碼有: ASPX頁面:

<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" BackColor="White" 
      BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" 
      Width="100%"> 
      <FooterStyle BackColor="#CCCCCC" /> 
         <SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
         <HeaderTemplate> 
            <span class="style2">Image Gallary</span> 
      </HeaderTemplate> 
       <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> 
         <ItemTemplate> 
         <asp:ImageButton Width="105px" ID="Image1" runat="server" BorderStyle="Solid" ImageUrl='<%# Bind("Name", "~/[foldername]/{0}") %>' 
         Height="94px" /> 
          <br /> 
          <asp:LinkButton ID="HyperLink1" Text='<%# Bind("Name") %>' CommandArgument='<%# Bind("Name") %>' runat="server" /> 
         </ItemTemplate> 
          <FooterStyle BackColor="White" ForeColor="#333333" /> 
          <ItemStyle BorderColor="Silver" BorderStyle="Dotted" BorderWidth="1px" HorizontalAlign="Center" 
           VerticalAlign="Bottom" BackColor="White" ForeColor="#333333" /> 
</asp:DataList> 

後面的代碼

private void ListImages() 
{ 
    DirectoryInfo dir = new DirectoryInfo(MapPath("~/images")); // it's will be animal if i click on animal and flower when i click on flower. 
    FileInfo[] file = dir.GetFiles(); 
    ArrayList list = new ArrayList(); 
    foreach (FileInfo file2 in file) 
    { 
     if (file2.Extension == ".jpg" || file2.Extension == ".jpeg" || file2.Extension == ".gif" || file2.Extension == ".png") 
     { 
      list.Add(file2); 
     } 
    } 
    DataList1.DataSource = list; 
    DataList1.DataBind(); 
} 

我試圖添加完整路徑爲列出:list.add(dir.tostring() + file2.tostring()),但我不能從aspx頁面調用它與<%#綁定(「名稱」)%>,錯誤是錯誤的屬性名稱! :(

回答

0

有你的代碼中有兩處問題:

您需要創建一個屬性類與Name屬性事情是這樣的:

在你的BindList方法
public class ImageTest 
{ 
    public string Name {get;set;} 
} 

則:

private void ListImages() 
     { 
      DirectoryInfo dir = new DirectoryInfo(MapPath("~/images/Animal")); // it's will be animal if i click on animal and flower when i click on flower. 
      FileInfo[] file = dir.GetFiles(); 
      // ArrayList list = new ArrayList(); 
      List<ImageTest> list = new List<ImageTest>(); 
      foreach (FileInfo file2 in file) 
      { 
       if (file2.Extension == ".jpg" || file2.Extension == ".jpeg" || file2.Extension == ".gif" || file2.Extension == ".png") 
       { 
        // list.Add(file2); 
        // list.Add(dir.ToString() + file2.ToString()); 
        list.Add(new test() 
           { 
            Name = "http://localhost:58822/Images/Animal/" + file2.ToString() // where localhost path would be your site url 
           }); 
       } 
      } 
      DataList1.DataSource = list; 
      DataList1.DataBind(); 
     } 

此外,您還需要從代碼中刪除〜/ [文件夾名稱]/{0}「)%>',並保留簡單的

ImageUrl='<%# Bind("Name") %>' 
+0

謝謝!!!我發現我的解決方案,自定義綁定image.imageurl物品databound! :d – 2014-10-07 02:41:29