正在将文件夹列表添加到下拉列表
本文关键字:添加 下拉列表 列表 文件夹 | 更新日期: 2023-09-27 18:24:43
当我调用以下方法作为下拉列表的数据源时,我得到的是System.Data.DataRowView而不是文件夹名称。我哪里做错了?
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();
您必须指定DataTextField
和DataValueField
:
ddl.DataSource = listFolders();
ddl.DataTextField = "name"; // or fullname
ddl.DataValueField = "fullname"; // or name
ddl.DataBind();
否则,.NET不知道要显示哪个字段,也不知道要将哪个字段用作键。您也可以只使用两者中的一个,那么文本也是值,反之亦然。但不能省略它,否则会使用object.ToString()
,这是DataRowView
的完整类型名。