Gridview绑定到目录中的文件名
问题描述:
我有一些祸害试图让我的GridView控件行为。我有下面的代码,它成功显示目录中的所有文件。然而,我需要两个更改,我正在努力:Gridview绑定到目录中的文件名
a)目前你点击URL字段时得到的URL是 http://localhost/LBSExplorer/SharedUser.csv(即我的主目录与文件名)。
我需要的是“显示文本”是唯一的文件名和URL是我想要的文字后面的文件名如: http://mystuff/page.aspx?FileID=SharedUser.csv
B)我只想看到,随着启动文件某个前缀,例如“支付”。我可以这样做: string [] filelist = Directory.GetFiles((@“C:\ MF \ Data \”,“Pay *。*”); 但是这不喜欢绑定到我的Gridview !
我会感激你的帮助!
马克
const string DocumentFolderPhysicalPath = (@"C:\MF\Data\");
const string DocumentFolderUrl = (@"C:\MF\Data\"); //"http://localhost/virtualfoldernameyouexposed/"; ; // now it is hardcoded but you could retreive it automatically
HyperLinkField hyperLinkField = new HyperLinkField();
hyperLinkField.DataTextField = "Name";
hyperLinkField.DataNavigateUrlFields = new string[] { "Name" };
//Would like this to work!
//HyperLinkField hyperLinkField2 = new HyperLinkField();
//hyperLinkField2.DataTextField = "Destination";
//hyperLinkField2.DataNavigateUrlFields = new string[] { (@"C:\MF\Data\") + "Name" };
GridView1.DataSource = GetDocuments(DocumentFolderPhysicalPath);
GridView1.Columns.Add(hyperLinkField);
GridView1.DataBind();
private System.IO.FileInfo[] GetDocuments(string physicalPath)
{
System.IO.DirectoryInfo directory =
new System.IO.DirectoryInfo(physicalPath);
if (directory.Exists)
{
return directory.GetFiles();
}
else
{
throw new System.IO.DirectoryNotFoundException(physicalPath);
}
}
答
你要找的是DataNavigateUrlFormatString财产。
hyperLinkField.DataNavigateUrlFormatString = "http://mystuff/page.aspx?FileID={0}";
{0}这里是取代d与您的DataNavigateUrlFields值。
Yeeeeees!我花了几个小时寻找那个!你是一个天才,我会为了你的荣誉而建立一座小神殿。 – Glinkot 2010-02-10 03:03:01