Я хочу перечислить файлы на TreeView, и если я нажимаю на TreeNode (файл), то этот файл будет загружен:как нажать на treeviewnode для загрузки файла
<asp:TreeView Id="MyTree"
PathSeparator = "|"
OnTreeNodePopulate="PopulateNode"
ExpandDepth="0"
runat="server" ImageSet="XPDirectoryListing" NodeIndent="15">
<SelectedNodeStyle BackColor="#B5B5B5"></SelectedNodeStyle>
<NodeStyle VerticalPadding="2" Font-Names="Tahoma" Font-Size="8pt" HorizontalPadding="2" ForeColor="#000000"></NodeStyle>
<HoverNodeStyle Font-Underline="True" ForeColor="#6666AA"></HoverNodeStyle>
<Nodes>
<asp:TreeNode Text="Demos" PopulateOnDemand="True" Value="Demos" />
</Nodes>
</asp:TreeView>
И код-за:
public partial class DirectoryListing : System.Web.UI.Page
{
protected void PopulateNode(Object source, TreeNodeEventArgs e)
{
TreeNode node = e.Node;
if (e.Node.Value == "Demos")
{
e.Node.Value = Server.MapPath("~/");
}
String[] dirs = Directory.GetDirectories(node.Value);
// Enumerate directories
foreach (String dir in dirs)
{
TreeNode newNode = new TreeNode(Path.GetFileName(dir), dir);
if (Directory.GetFiles(dir).Length > 0 || Directory.GetDirectories(dir).Length > 0)
{
newNode.PopulateOnDemand = true;
}
node.ChildNodes.Add(newNode);
}
// Enumerate files
String[] files = Directory.GetFiles(node.Value);
foreach (String file in files)
{
TreeNode newNode = new TreeNode(Path.GetFileName(file), file);
node.ChildNodes.Add(newNode);
}
}
}
Как я могу изменить его таким образом, что я нажимаю на TreeNode, файл в TreeNode будет загружен.
Заранее спасибо.
нет, это не интернет-приложение. – olidev
ОК, так что это не интернет-приложение? Тогда приведенный выше код может работать, если пользователь имеет права доступа к пути к файлу. Если у пользователя нет доступа, вам нужно либо предоставить им доступ, либо использовать файловый стример, чтобы обслуживать файл для пользователя. – cfs