2011-06-07 28 views
0

我有一个下拉列表我&页面上想要的列表项是从Web服务器上的本地目录文件夹...即....asp:DropDownList从本地目录抓取数据?

T:\窗体 T:\手册 ŧ :\ SOFTWARE

这是到目前为止我的代码...

protected void Page_Load(object sender, EventArgs e) 
    { 
     DirectoryInfo di = new DirectoryInfo("C:/"); 
     DirectoryInfo[] dirArray = di.GetDirectories(); 
     DropDownList1.DataSource = dirArray; 
     foreach (DirectoryInfo i in dirArray) 
     { 
      DropDownList1.DataTextField = i.FullName; 
      DropDownList1.DataValueField = i.FullName; 
     } 
    } 

解决

protected void Page_Load(object sender, EventArgs e) 
    { 
     DirectoryInfo di = new DirectoryInfo("C:/"); 

     DropDownList1.DataSource = di.GetDirectories(); 

     DropDownList1.DataBind(); 

     foreach (DirectoryInfo i in di.GetDirectories()) 
     { 
      DropDownList1.DataTextField = i.FullName; 
     } 

    } 

回答

1

退房的

System.IO.DirectoryInfo

System.IO.FileInfo

类。显然,你只能够读取Web服务器的文件系统

+0

太感谢你了,我怎么拿到数值F从一个数组到现在的下拉列表? – bluetickk 2011-06-07 14:30:17

+0

您可以将阵列直接绑定到下拉列表。例如:dropDownList.DataSource = yourFileArray;然后设置DataTextField和DataValueField并调用数据绑定。 – WraithNath 2011-06-07 14:31:39

+0

你还需要帮助吗? DataTextField和DataValue字段应该是作为字符串传递的属性的名称,而不是对象的实际值。例如“FullName”而不是i.FullName – WraithNath 2011-06-07 15:41:30

1

您可以使用

List<string> dirList=new List<string>(); 

DirectoryInfo[] DI = new DirectoryInfo(@"T:\Forms\").GetDirectories("*.*",SearchOption.AllDirectories) ; 
foreach (DirectoryInfo D1 in DI) 
{ 
    dirList.Add(D1.FullName); 
} 

做到这一点对所有三个目录,然后数据绑定到列表

3

我会使用这样的建议一段代码

DirectoryInfo di = new DirectoryInfo(@"e:\"); 
    ddlFolders.DataSource = di.GetDirectories(); 
    ddlFolders.DataTextField = "Name"; 
    ddlFolders.DataValueField = "FullName"; 
    ddlFolders.DataBind(); 

心连心

+0

谢谢,你们都很有帮助 – bluetickk 2011-06-07 14:49:32