C# 将文件夹列表添加到下拉列表
当我调用以下方法作为dropdownlist的数据源时,我得到的是System.Data.DataRowView,而不是文件夹名称。我哪里做错了C# 将文件夹列表添加到下拉列表,c#,asp.net,file-io,C#,Asp.net,File Io,当我调用以下方法作为dropdownlist的数据源时,我得到的是System.Data.DataRowView,而不是文件夹名称。我哪里做错了 public DataTable listFolders() { DataTable dt = new DataTable(); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("fullname", typeof(string)); string defa
public DataTable listFolders()
{
DataTable dt = new DataTable();
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("fullname", typeof(string));
string defaultPath = Server.MapPath(ConfigurationManager.AppSettings["defaultPath"].ToString());
foreach (var dir in new DirectoryInfo(defaultPath).GetDirectories("*", SearchOption.TopDirectoryOnly))
{
dr = dt.NewRow();
dr["name"] = dir.Name;
dr["fullname"] = dir.FullName;
dt.Rows.Add(dr);
}
return dt;
}
我的方法调用
ddl.DataSource = listFolders();
ddl.DataBind();
您必须指定和:
否则.NET不知道要显示哪个字段以及要将哪个字段用作键。您也可以只使用两者中的一个,那么文本也是值,反之亦然。但是您不能忽略它,否则将使用
object.ToString()
,这是DataRowView
@TimSchmetler的完整类型名。我忘了翻译它
ddl.DataSource = listFolders();
ddl.DataTextField = "name"; // or fullname
ddl.DataValueField = "fullname"; // or name
ddl.DataBind();