如何连接下拉列表的值

时间:2013-07-02 20:05:29

标签: c#

我有三个下拉列表。从这三个我必须选择各种路径来检索一个文件夹。问题是路径无法检索文件夹并给出错误找不到路径的一部分。我的代码就是。

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));

            }

        }
    }

4 个答案:

答案 0 :(得分:1)

您没有正确转换路径。

更改此行:

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

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

答案 1 :(得分:0)

如果您需要Drp_List1.SelectedItem.Text所选的下拉菜单项,请使用Text

如果您需要Drp_List1.SelectedItem.Value所选的下拉菜单,请使用Value

为所有下拉菜单执行此操作。

答案 2 :(得分: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 + "\\";

答案 3 :(得分:0)

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

使用Path.Combine()可以更轻松地处理路径。