2012-10-31 76 views
0

我正在從list-box得到一個imagepicturebox在asp.net中,list-box讀取目錄,然後在文件中填充jpegs。 這需要在C#中做,此刻我有它是如何做一個粗略的想法,但我沒有得到顯示任何畫面:圖像預覽asp.net與C#

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!IsPostBack) 
     { 
      DirectoryInfo infoDir = new DirectoryInfo(@"G:/Test_Directory");    
      FileInfo[] infoFile = infoDir.GetFiles("*.jpeg"); 
      foreach(FileInfo file in infoFile) 
      { 
       lstDirectory.Items.Add(file.Name); 
      } 
     }  
    } 

    protected void lstDirectory_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     Server.MapPath(lstDirectory.SelectedValue.ToString()); 
     imageChange.ImageUrl = lstDirectory.SelectedValue.ToString();    
    } 
} 

它可能是不是正確的路徑的情況下,或者其他的東西。有人可以指引我去哪裏出錯。

回答

1

您未使用MapPath的結果。嘗試這個。

var img = Server.MapPath(lstDirectory.SelectedValue.ToString()); 
    imageChange.ImageUrl = img; 

UPDATE:您的圖片文件夾似乎是網絡文件夾之外,內部移動。沒有簡單的方法來使其工作。

+0

已經沒有奏效,我認爲每次點擊列表框中的一個項目時頁面都會重新加載,這意味着它會再次變爲空,因此圖片的值爲空。這將是我的回發錯誤? –

+0

調試時在'img'中看到了什麼字符串? – Anri

+0

對不起,我再次檢查,它進入了錯誤的文件夾G:\\ ConsoleApplication1 \\ Task3 \\ jpegimage.jpeg,因爲它應該是G:\ Test_Directory \ jpegimage.jpeg –

0

我會遺憾的是建議您在您的解決方案add New folderadd all your images in to it...

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!IsPostBack) 
     { 
      DirectoryInfo infoDir = new DirectoryInfo(Server.MapPath("Images"));//this is the image foled name    
      FileInfo[] infoFile = infoDir.GetFiles("*.jpeg"); 
      foreach(FileInfo file in infoFile) 
      { 
       lstDirectory.Items.Add(file.Name,"Images/"+file.Name); 
      //here you are setting relative path of images in your value field 
      } 
     }  
    } 

然後圖像路徑設置爲蘇氨酸作爲使用Server.Mappath遵循....

protected void lstDirectory_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if(File.Exists(Server.MapPath(lstDirectory.SelectedValue.ToString()))) 
     { 
      imageChange.ImageUrl =Server.MapPath(lstDirectory.SelectedValue.ToString());    
     } 
    }