2014-09-19 8 views
0

텍스트 상자에 입력 한 내용이 포함 된 목록 상자를 채우는 코드가 있습니다. 내 문제는 모든 파일이 이미지이기 때문에 listbox에있는 선택된 항목을 image viewer에 어떻게 표시 할 수 있습니까? 내가 놓친 게 있니? 또한 파일이었다 경로를이 부분에서 이미지 뷰어의 목록 상자에서 선택한 항목을 보는 방법 asp.net

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ListBox1.Items.Clear(); 
    string[] files = Directory.GetFiles(Server.MapPath("~/images"), "*.*", SearchOption.AllDirectories); 
    foreach (string item in files) 
    { 
     string fileName = Path.GetFileName(item); 
     if (fileName.ToLower().Contains(TextBox1.Text.ToLower())) 
     { 
      string subPath = item.Substring(Server.MapPath("~/images").Length).Replace("\\","/"); 
      ListBox1.Items.Add(new ListItem(fileName, subPath)); 
     } 
    } 
} 

, 당신은 파일 이름을 가질뿐만 아니라 필요하지만이 내가 생각 작동합니다

protected void Button1_Click(object sender, EventArgs e) 
    { 
     ListBox1.Items.Clear(); 
     string[] files = Directory.GetFiles(Server.MapPath("~/images"), "*.*", SearchOption.AllDirectories); 


     foreach (string item in files) 
     { 
      string fileName = Path.GetFileName(item); 
      if (fileName.ToLower().Contains(TextBox1.Text.ToLower())) 
      { 
       ListBox1.Items.Add(fileName); 
      } 

     } 
    } 

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      DocumentImage.ImageUrl = Directory.GetDirectories("~/images") + ListBox1.SelectedItem.ToString(); 
     } 
+0

Directory.GetDirectories ("~/images")는 배열을 반환하므로 본질적으로 배열을 문자열 (String [] + string)과 결합하려고합니다. – JuStDaN

+0

@JuStDaN 그럼 어떻게해야합니까? – NatsuDragneel

답변

2

: 여기

내 코드입니다 녹이다. 내 샘플에서 파일이 발견 된 하위 경로는 먼저 subPath으로 설정되고 그 다음 목록 항목의 값으로 저장됩니다.

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DocumentImage.ImageUrl = "~/images" + ListBox1.SelectedItem.Value; 
} 

여기서 우리는 하위 경로를 사용하여 이미지에 올바른 URL을 설정합니다.

asxp 페이지의 DocumentImage 페이지에서 AutoPostBack을 true로 설정해야 목록 상자에서 선택 항목을 변경할 때 이미지가 변경 될 수 있습니다.