如何连接下拉列表的值

本文关键字:下拉列表 连接 何连接 | 更新日期: 2023-09-27 18:20:43

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

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

如何连接下拉列表的值

您没有正确转换路径。

更改此行:

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, "''");

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

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

对所有下拉项都执行此操作。

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

使用Path.Combine()可以使处理路径变得更容易一些。

在我看来,这一行:

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) + "''";

而且,正如Gloria所说,如果你想使用所选项目的文本,你应该使用Drp_List1.SelectedItem.Text。所以它实际上应该是:

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