2013-07-02 93 views
0

我有三個下拉列表。從這三個我必須選擇各種路徑來檢索一個文件夾。問題是路徑無法檢索文件夾,並給錯誤找不到路徑的一部分。我的代碼是。如何連接下拉列表的值

protected void Btn_Load_Click1(object sender, EventArgs e) 


    { 

     string _username = ConfigurationManager.AppSettings["ImpersonatedUserName"].ToString(); 
     string _password = ConfigurationManager.AppSettings["ImpersonatedPassword"].ToString(); 
     string _domain = ConfigurationManager.AppSettings["ImpersonatedDomain"].ToString(); 

     Impersonation objImpersonation = new Impersonation(); 

     if (objImpersonation.impersonateValidUser(_username, _domain, _password)) 
     { 




     string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\"; 

      string[] files = System.IO.Directory.GetFiles(PathFecha); 
      foreach (string filename in files) 
      { 
       ListBox1.Items.Add(new ListItem(System.IO.Path.GetFileName(filename), filename)); 

      } 

     } 
    } 

回答

0

使用Drp_List1.SelectedItem.Text如果你需要選擇下拉菜單項的Text

如果您需要選擇下拉菜單的Value,請使用Drp_List1.SelectedItem.Value

對所有下拉菜單執行此操作。

+0

如何爲所選下拉菜單設置文本和值屬性。 – user2533029

0

那麼在我看來,與這條線:

string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\"; 

你只是串聯一個字符串的基本路徑,這是不是你想要的。將C#代碼放入字符串不會替換字符串中該代碼的結果。你想要做的是串聯單獨路徑的各個部分:

string PathFecha = Convert.ToString(Drp_List1.SelectedItem) + "\\" 
        + Convert.ToString(Drp_List2.SelectedItem) + "\\" 
        + Convert.ToString(Drp_List3.SelectedItem) + "\\"; 

而且,正如格洛麗亞說,如果你想使用所選項目的文本,你應該使用Drp_List1.SelectedItem.Text。所以它實際上應該是:

string PathFecha = Drp_List1.SelectedItem.Text + "\\" 
        + Drp_List2.SelectedItem.Text + "\\" 
        + Drp_List3.SelectedItem.Text + "\\"; 
+0

上述任何建議都無法正常工作。請提供其他任何內容。 – user2533029

+0

沒有解決方案工作,它給編譯錯誤,找不到路徑的一部分,因爲你們可以提供其他解決方案PLZ。 – user2533029

+0

那麼,你需要確保路徑確實存在。如果你想檢查,那麼在你的PathFecha聲明之後,你可以寫:MessageBox.Show(PathFecha);這樣你就可以看到它認爲它在看什麼。 – Jashaszun

1

您沒有正確轉換路徑。

改變這一行:

string PathFecha = ConfigurationManager.AppSettings.ToString() + "\\Convert.ToString(Drp_List1.SelectedItem)\\Convert.ToString(Drp_List2.SelectedItem)\\Convert.ToString(Drp_List3.SelectedItem)\\"; 

TO:

string PathFecha = string.Format("{0}{4}{1}{4}{2}{4}{3}{4}", ConfigurationManager.AppSettings.ToString(), Drp_List1.SelectedText, Drp_List2.SelectedText, Drp_List3.SelectedText, "\\"); 
+0

'.net 4.0'重載'Path.Combine方法(String [])'http://msdn.microsoft.com/en-us/library/dd991142%28VS.100%29.aspx也可能對此有幫助 –

0
string PathFecha = 
    System.IO.Path.Combine(
    ConfigurationManager.AppSettings.ToString(), 
    Drp_List1.SelectedItem.Text, 
    Drp_List2.SelectedItem.Text, 
    Drp_List3.SelectedItem.Text); 

使用Path.Combine()可能更容易一點處理的路徑。