2013-07-02 29 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()可能更容易一点处理的路径。