Ja, det är kanske ett par stycken som vill se lite kod nu när det förmodligen är många som precis har/ska börja koda c#/vb.net/etc på .net. Sen kanske man inte ska ta min kod på allt för stort allvar, jag är knappt en glad amatör. Men den funkar iaf! :)
Om det är någon som undrar vad jag har gjort så håller jag på med en funktion som först plockar ut alla underkataloger i en given katalog, lägger filnamnet för varje katalog i en array (som jag fyller min repeater med). När du klickar på en given katalog så hämtar jag på samma sätt alla filer som finns i den katalogen (i mitt fall bilder) och skapar en ny array med alla filnamn, som sedan blir en länk på sidan som öppnar bilden. Så nu behöver jag bara skapa en katalog, dundra i lite filer där och voila så ligger de automatiskt färdiglänkade på internet. :)
Här är lite mer kod som jag har lärt mig när jag gjort den här funktionen:
Request.PhysicalApplicationPath
Hämtar hela sökvägen till den katalog där filen jag skriver detta i befinner sig.
Directory.GetDirectories("sökvägen")
Hämtar alla kataloger i den givna sökvägen.
Path.GetFileName("sökvägen")
Hämtar filnamnet på alla filer i den aktuella katalogen.
Path.GetFileNameWithoutExtension("sökvägen")
Hämtar filnamnet UTAN filändelse på alla filer i den aktuella katalogen.
Anledningen till att jag först skapar en arraylist för katalogerna och filerna och sen skapar en arraylist till (theList) som jag fyller filnamnen med från den första arrayen...
ArrayList Catalog = new ArrayList(Directory.GetDirectories(Request.PhysicalApplicationPath+"Galleriet"));
ArrayList theList = new ArrayList();
foreach(string i in Catalog) {
theList.Add(new PositionData(Path.GetFileName(i), Path.GetFileNameWithoutExtension(i) ... );
}
CatalogRepeater.DataSource = theList;
CatalogRepeater.DataBind();
...beror på att jag vill kunna stoppa in och visa flera olika data i min repeater, ungefär som om jag hade en dataset. Annars kan jag ju bara lägga till de värden som jag har i min array, men jag behövde kunna skriva ut både filnamn, filnamn utan filändelse och sökvägen till en viss katalog. För att fixa detta har jag skapat en klass som jag kallar för PositionData. Den ser ut ungefär så här:
public PositionData(string first) {
this.first = first.Trim();
}
public PositionData(string first, string second) {
this.first = first.Trim();
this.second = second.Trim();
osv...
public string First {
get {
return first;
}
}
public string Second {
get {
return second;
}
}
Så kan jag skyffla in data i repeatern:
theList.Add(new PositionData(Path.GetFileName(i), Path.GetFileNameWithoutExtension(i) ... );
Och hämta dem i min repeater:
<%# DataBinder.Eval(Container.DataItem, "first") %>
<%# DataBinder.Eval(Container.DataItem, "second") %>
------------------
Jag kan inte komma på någon signatur.
[Redigerat av NETwork den 21 jan 2002]