Jag har en sida som hämtar mappar och "genererar ut" dem på sidan. Jag har inget problem med det, men eftersom jag är helt självlärd i ASP.NET än så länge, så vet jag inte om det finns smidigare sätt att lösa detta på. När jag kodade det kändes det så. Här är iallafall koden: Jag gissar att du tidigare pysslat med ASP? Min spontana kommentar är denna: Okej, men i ASP.NET så löser man det genom att dynamsikt skriva ut en tabell eller nåt då? I ASP.NET använder man ASP.NETs färdiga kontroller som man sedan fyller dynamiskt från code-behind. Eller så skapar man kontrollerna dynamiskt från code-behind, men då får man ingen separation mellan design och kod.Klumpigt sätt att generera HTML-kod?
Public Shared Function getHTMLFolders(ByVal strFolderPath As String, ByVal strImagePath As String, Optional ByVal strLinkPage As String = "default.aspx?foldername=", Optional ByVal intNumberOfFoldersOnRow As Integer = 3, Optional ByVal intRowPadding As Integer = 10, Optional ByVal intColPadding As Integer = 10, Optional ByVal intColWidth As Integer = 210, Optional ByVal intRowHeight As Integer = 40) As String
Dim newDir As System.IO.DirectoryInfo
Dim thisDir As System.IO.DirectoryInfo
Dim strFileName As String
Dim intCols As Integer = 0
Dim intRows As Integer = 0
newDir = New System.IO.DirectoryInfo(strFolderPath)
For Each thisDir In newDir.GetDirectories()
If intCols = intNumberOfFoldersOnRow Then
intCols = 0
intRows = intRows + 1
End If
strFileName = clsLibrary.withStrings.getName_byPath(thisDir.FullName, False)
getHTMLFolders = getHTMLFolders & "<SPAN STYLE=""position:absolute;top:" & intRows * (40 + intRowPadding) & "px;left:" & intCols * (intColWidth + intColPadding) & "px;height:" & intRowHeight & "px;width;" & intColWidth & "px;"" > " & _
"<TABLE WIDTH=""" & intColWidth & """ HEIGHT=""40"">" & _
"<TR>" & _
"<TD WIDTH=""" & intRowHeight & """>" & _
"" & _
"</TD>" & _
"<TD>" & _
"" & IIf(Len(strFileName) > 50, Left(strFileName, 45) & "...", Left(strFileName, 50)) & "" & _
"</TD>" & _
"</TR>" & _
"</TABLE>" & _
"</SPAN>"
intCols = intCols + 1
Next
End Function
Funktionen använder jag sedan exempelvis såhär:
divMain.InnerHTML = getHTMLFolders("c:\", "images/mapp.gif", "visainnehall.aspx?mapp=", 3, 10, 10, 210, 40)
EDIT: MIssade visst en funktion som också används: clsLibrary.withStrings.getName_byPath(). Det den gör är att hämta sista biten ur en sökväg, ex: c:\Windows\System32 så returneras endast System32. Boolean-värdet är till för att man ska kunna välja om man vill ha med filändelsen om man skickar med en sökväg till en fil.
Sv: Klumpigt sätt att generera HTML-kod?
Det där är inte ASP.NET, det är ASP. Istället för att lära dig .NET så har du löst saker på samma sätt som du gjorde i ASP.
En fördel med ASP.NET är att det är lättare att separera design och kod. Man lägger HTML i .aspx sidan och koden i code-behind. Man använder ASP.NETs kontroller istället för standard HTML taggar och lägger Runat="server" vilket gör att man kan sätta attributen från code-behind.
http://pdc.se/blog/DisplayEntry.aspx?eid=58Sv: Klumpigt sätt att generera HTML-kod?
Sv: Klumpigt sätt att generera HTML-kod?
[url]http://samples.gotdotnet.com/quickstart/[/url]