2010-02-09 57 views
0

我有一些禍害試圖讓我的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); 
    } 
} 

回答

1

你要找的是DataNavigateUrlFormatString財產。

hyperLinkField.DataNavigateUrlFormatString = "http://mystuff/page.aspx?FileID={0}"; 

{0}這裏是取代d與您的DataNavigateUrlFields值。

+0

Yeeeeees!我花了幾個小時尋找那個!你是一個天才,我會爲了你的榮譽而建立一座小神殿。 – Glinkot 2010-02-10 03:03:01