2009-07-23 2 views
0

Я пытаюсь написать приложение, которое позволяет пользователю нажимать кнопку, чтобы видеть изображения в виде миниатюр из папки в модальном всплывающем окне. Внутри моего модального всплывающего окна у меня есть datalist. Но оттуда я не знаю, куда идти. Я уже пробовал решение 4guysfromrolla, но это не то, что я искал. Как настроить изображения в виде эскизов? У меня уже есть следующий ....Thumbnails asp.net

Dim files As String() = Directory.GetFiles(Server.MapPath("~/Folder1/Folder2/"), "*.jpg") 

    For Each File As String In files 
     File = File.Substring(File.LastIndexOf("/") + 1, File.Length) 
     'Response.Write(File & "<br>") 

     File = File & "~/Folder1/Folder2/" 

     Dim image As Image = New Image() 
     image.ImageUrl = File 
     image.Height = 50 
     image.Width = 50 
     Me.Controls.Add(image) 

    Next 

Отредактировано: Новый Вопрос

Я хочу, чтобы изменить размер изображения в JavaScript OnMouseOver.

image.Attributes.add("onmouseover","change size here") 

Panel2.controls.add(image) 

Возможно ли это сделать здесь?

+0

Хорошо, тогда похоже, что вы сделали модное окно с миниатюрами. Что вы хотите спросить? – Canavar

+0

Извините, я сделал это немного более ясно. – Eric

+1

Есть ли причина, по которой ваш вопрос помечен C#, в то время как ваш фрагмент кода находится в VB.NET? –

ответ

3
<asp:DataList ID="dl_thumbs" runat="server"> 
<ItemTemplate> 
    <img src="<%# Eval("imageUrl") %>" height="50" width="50" title="<%# Eval("imageTitle") %>" alt="<%# Eval("imageAlt") %>"/> 
</ItemTemplate> 
</asp:DataList> 



private void InitData(string folder) 
{ 

    var files = Directory.GetFiles(Server.MapPath(folder)); 



    var images = files.Select(i => 
         new 
         { 
          imageUrl = folder + Path.GetFileName(i), 
          imageTitle = Path.GetFileName(i), 
          imageAlt = Path.GetFileName(i) 
         }); 

    dl_thumbs.DataSource = images; 
    dl_thumbs.DataBind(); 
} 

Как сохранить изображения в своей структуре папок?

Миниатюры обычно обрабатываются и оптимизируются для версий исходного файла.

Оригинальный файл 500x500, то превью будут обрабатываться до 50x50.

Вы должны иметь 2 (или больше версий изображений вас ..)

myfavImageName.jpg

myfavImageName.thumb.jpg

или даже добавить еще одну папку [Thumbs]

/Folder1/Folder2/myfavImageName.jpg

/Folder1/Folder2/thumbs/myfavImageName.jpg

Вы также можете использовать путь, чтобы получить имя файла. его менее подвержена ошибкам:

filename = Path.GetFileName(File); 
+0

Спасибо в любом случае. +1 – Eric

+0

Жаль, что я пишу в C# – BigBlondeViking

+0

Эй, проверьте мой вопрос под отредактированным. У вас есть опыт? – Eric

0

Это то, что я сделал.

Dim files As String() = Directory.GetFiles(Server.MapPath("~/folder1/folder2/"), "*.jpg") 
    For Each File As String In files 
     Dim substr As String = File.Substring(0, File.LastIndexOf("\")) 

     File = File.Replace(substr, "") 

     File = "~/Folder1/Folder2" & File 
     Dim image As Image = New Image() 
     image.ImageUrl = File 
     image.Height = 50 
     image.Width = 50 
     Panel1.Controls.Add(image) 
     'Panel1.FindControl("dlpictures").Controls.Add(image) 
    Next