GetFiles() returnerar väl en lista så du borde kunna göra så här bara (otestat):
gvFile.DataSource = dirInfo.GetFiles();
gvFile.DataBind();
4 svar · 564 visningar · startad av Vinnaren
försöker bygga en filhanterare, men jag vet inte redigt hur jag ska få ut filerna i GridView:n.
<asp:TreeView
ID="tvMap"
runat="server">
</asp:TreeView>
<asp:GridView
ID="gvFile"
runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkChecked" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Filnamn">
<ItemTemplate>
<asp:LinkButton
ID="lbtnFile"
runat="server"
Text='<%# Eval("filename") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
private void BindTree()
{
// tömmer listan
tvMap.Nodes.Clear();
string rootFolder = BaseDir;
TreeNode rootNode = new TreeNode();
rootNode.Text = BaseDir;
rootNode.Expanded = true;
rootNode.Value = rootFolder.Replace("\\", "~").Replace(" ", "|");
tvMap.Nodes.Add(rootNode);
tvMap.ShowLines = true;
BuildTreeDir(rootFolder, rootNode);
}
// bygger upp menyn med mappar o mappnamn
private void BuildTreeDir(string dirPath, TreeNode parentNode)
{
string[] subDir = Directory.GetDirectories(dirPath);
// loopar ut alla mappar
foreach (string directory in subDir)
{
string[] parts = directory.Split('\\');
string name = parts[parts.Length - 1];
TreeNode node = new TreeNode();
node.Text = name;
node.ImageUrl = "~/bilder/filemanager/folder.gif";
node.Expanded = false;
// lägger till nod
parentNode.ChildNodes.Add(node);
// bygger upp undermappar
BuildSubDir(directory, node);
}
}
// bygger upp undermenyn med mappar o mappnamn
private void BuildSubDir(string dirPath, TreeNode parentNode)
{
string[] subDir = Directory.GetDirectories(dirPath);
// loppar ut alla mappar
foreach (string directory in subDir)
{
string[] parts = directory.Split('\\');
string name = parts[parts.Length - 1];
TreeNode node = new TreeNode();
node.Text = name;
node.ImageUrl = "~/bilder/filemanager/folder.gif";
parentNode.ChildNodes.Add(node);
node.Expanded = false;
// bygger upp undermappar
BuildSubDir(directory, node);
}
}
private void BindGrid()
{
DirectoryInfo dirInfo = new DirectoryInfo(GetFolderPath());
FileInfo[] info = dirInfo.GetFiles();
if (info.Length != 0)
{
foreach (FileInfo f in info)
{
}
}
}
protected string GetFolderPath()
{
string orginalPath = tvMap.SelectedNode.ValuePath;
string newPath = orginalPath.Replace("~", "\\").Replace("/ ", "\\");
return newPath;
}
Det är metoden BindGrid() som ska visa alla filer i GridView:n.
Hur gör man detta??
Tacksam för all hjälp :stud
GetFiles() returnerar väl en lista så du borde kunna göra så här bara (otestat):
gvFile.DataSource = dirInfo.GetFiles();
gvFile.DataBind();
tack, har problem med att få ut filerna för den mappen man klickar på
protected string GetFolderPath()
{
string orginalPath = tvMap.SelectedNode.ValuePath;
string newPath = orginalPath.Replace("~", "\\").Replace("/ ", "\\");
return newPath;
}
när den har returneras kommer felmeddelandet:
System.ArgumentException: Ogiltiga tecken i sökvägen.
på:
DirectoryInfo dirInfo = new DirectoryInfo(GetFolderPath());
Sökvägen där är:
"C:\\Documents|and|Settings\\Skrivbord\\filhanterare\\upload\\"
Hur får man en korrekt sökväg?
kommenterade bort:
rootNode.Value = rootFolder.Replace("\\", "~").Replace(" ", "|");
i private void BindTree() så nu fungerar den :o
vet inte om det var så smart men den fungerar iaf :e
hur gör man för att räkna om b till kb i en bunden kolumn?
Har koden:
<asp:BoundField
DataField="Length"
HeaderText="Storlek (kb)" />
Går det? i så fall hur??
Tacksam för all hjälp :stud