-
Vor kurzem wollte ich die Website statisch machen, also habe ich selbst ein paar Methoden geschrieben und sie zur Diskussion mit allen gepostet.
/// <Zusammenfassung>
/// Statische Funktionsklasse der Website
/// </summary>
öffentliche Klasse CreateHtml
{
/// <Zusammenfassung>
/// Vorlageninhalt lesen
/// </summary>
/// <param name="template">Relativer Pfad der Vorlage</param>
/// <returns>Vorlageninhalt, Lesefehler gibt „“ zurück</returns>
öffentlicher String Html_ReadTemplate(String-Vorlage)
{
#Region
StringBuilder str = new StringBuilder();//Speichermusterinhalt
if (template != null && template != "" && template.Length > 0)//if
{
versuchen
{
using (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(template), Encoding.GetEncoding("utf-8")))
{
string tempStr;
while ((tempStr = sr.ReadLine()) != null)//Wenn das Ende der Datei nicht gelesen wird
{
str.Append(tempStr);
}
sr.Close();
}
}
Catch (Ausnahme ex)
{
null zurückgeben;
}
}
return str.ToString();
#endregion
}
/// <Zusammenfassung>
/// Dateien basierend auf dem absoluten Pfad und Dateinamen der generierten Datei generieren
/// </summary>
/// <param name="fileAbsolutePath">Absoluter Dateipfad</param>
/// <param name="htmlName">Dateinamen generieren</param>
/// <param name="htmlNote">Dateiinhalt schreiben</param>
/// <returns>Dateistatus generieren, 1: Erfolg 0: Fehler</returns>
public int Html_WriteTemplate(string fileAbsolutePath, string htmlName,string htmlNote)
{
#Region
if (fileAbsolutePath != null && fileAbsolutePath != "" && fileAbsolutePath.Length > 0 && htmlName != null && htmlName != "" && htmlName.Length > 0)
{
versuchen
{
using (FileStream fs = new FileStream(fileAbsolutePath + "\" + htmlName, FileMode.Create, FileAccess.Write, FileShare.Write))
{
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("utf-8"));
sw.Write(htmlNote);
sw.Close();
fs.Close();
return 1;//Datei erfolgreich generiert
}
}
Catch (Ausnahme ex)
{
0 zurückgeben;
}
}
return 0;//Dateigenerierung fehlgeschlagen
#endregion
}
/// <Zusammenfassung>
/// Lesen Sie die Seiten entsprechend dem gesamten gelesenen Inhalt ein und trennen Sie jede Seite durch „|“
/// </summary>
/// <param name="contentText">Inhalt</param>
/// <param name="pageLogo">Paging-Logo</param>
/// <returns>Die Zeichenfolge nach der Paginierung des Inhalts, jede Seite wird durch „|“ getrennt</returns>
öffentlicher String Html_BackPageData(string contentText,string pageLogo)
{
#Region
int tempcount = 0;
StringBuilder sb = new StringBuilder();
while (tempcount >= 0)
{
int index = contentText.IndexOf(pageLogo);//Paging-Logo
if (index == -1)//Wenn kein Paging erfolgt
{
sb.Append(contentText);
brechen;
}
anders
{
sb.Append(contentText.Substring(0,index)+"|");
int start = index + pageLogo.Length + 1;
int end = contentText.Length-index-pageLogo.Length - 1;
contentText=contentText.Substring(start, end);
}
tempcount++;
}
return sb.ToString();
#endregion
}
/// <Zusammenfassung>
/// Generieren Sie entsprechende Paging-Flags für den Inhalt, die Startseite, die vorherige Seite, die Seitennummer, die nächste Seite und die letzte Seite (für einen Inhalt).
/// </summary>
/// <param name="currPageIndex">Aktueller Seitenindex</param>
/// <param name="pageCount">Gesamtzahl der Seiten</param>
/// <param name="noteName">Dateiname (nur der Dateiname ohne Suffix)</param>
/// <returns>Das entsprechende Paging-Flag, das basierend auf dem Inhalt generiert wird</returns>
öffentlicher String Html_Pager_Sign(int currPageIndex, int pageCount, string noteName)
{
#Region
string allSeprNote = "<table><tr><td> $firstpage$</td><td> $uppage$</td><td> $pagenumber$</ td><td> $drownpage$</td><td> $lastpage$</td></tr></table>";
string seprTempStr = "";
for (int i = 1; i <= pageCount; i++)//Schleife zum Generieren von Seitenzahlen für jede Seite (diese Schleife generiert nur Seitenzahlen)
{
int n = i - 1;
//Wenn es die erste Seite ist
if(i==1)
{
seprTempStr += "<a href='" + noteName + ".html'>" + i+" "+ "</a>";
}
anders
{
seprTempStr += "<a href='" + noteName +"-"+n+ ".html'>" + i+" " + "</a>";
}
}
allSeprNote = allSeprNote.Replace("$pagenumber$", seprTempStr);//Seitenzahl ersetzen
//Startseite und vorherige Seite generieren
if (currPageIndex == 0)//Wenn die aktuelle Seite die erste Seite ist, gibt es keinen Link zur vorherigen Seite oder Homepage.
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Die Homepage ersetzen
allSeprNote = allSeprNote.Replace("$uppage$", " previous page"); // Vorherige Seite ersetzen
}
else if (currPageIndex == 1)//Wenn die aktuelle Seite die zweite Seite ist, gibt es Links zur vorherigen Seite und zur Homepage, und die Links zur vorherigen Seite und zur Homepage sind gleich, das heißt Funktionen sind gleich
{
allSeprNote = allSeprNote.Replace("$firstpage$", "<a href='" + noteName + ".html'>Homepage</a>");//Ersetzen Sie die Homepage durch Links
allSeprNote = allSeprNote.Replace("$uppage$", "<a href='" + noteName + ".html'>Vorherige Seite</a>");//Ersetzen Sie die vorherige Seite, da es sich um die zweite Seite handelt. Der Link ist die gleiche wie die Homepage
}
else//wenn es eine andere Seite ist
{
int temppageindex = currPageIndex - 1; //Vorherige Seitennummer
allSeprNote = allSeprNote.Replace("$firstpage$", "<a href='" + noteName + ".html'>Homepage</a>");//Ersetzen Sie die Homepage
allSeprNote = allSeprNote.Replace("$uppage$", "<a href='" + noteName +"-"+temppageindex+ ".html'>Vorherige Seite</a>");//Vorherige Seite ersetzen
}
//Letzte Seite und nächste Seite generieren
if (currPageIndex == pageCount - 1)//Wenn die aktuelle Seite die letzte Seite ist, haben die nächste Seite und die letzte Seite die gleichen Funktionen und keine Links.
{
allSeprNote = allSeprNote.Replace("$lastpage$", "last page");//Letzte Seite ersetzen
allSeprNote = allSeprNote.Replace("$drownpage$", "next page");//Ersetze die nächste Seite
}
else//wenn es eine andere Seite ist
{
int temppageindex = currPageIndex+1;//nächste Seitennummer
allSeprNote=allSeprNote.Replace("$lastpage$", "<a href='" + noteName + "-" + (pageCount - 1) + ".html'>Letzte Seite</a>");//Ende generieren Seite
allSeprNote=allSeprNote.Replace("$drownpage$", "<a href='" + noteName + "-" + temppageindex + ".html'>Nächste Seite</a>");
}
return allSeprNote;
#endregion
}
/// <Zusammenfassung>
/// Paging-Flags für Listenseiten generieren
/// </summary>
/// <param name="pageTotal">Gesamtzahl der Seiten</param>
/// <param name="currentPage">Aktueller Seitenindex (beginnend bei Null)</param>
/// <param name="pageSize">Anzahl der auf jeder Seite angezeigten Inhaltselemente</param>
/// <param name="name">Dateiname (ohne Suffix)</param>
/// <returns>Paging-Flag</returns>
öffentlicher String Html_Pager_Multi(int pageTotal, int currentPage, int pageSize, Stringname, Stringpfad)
{
#Region
pageTotal = pageTotal - 1;
StringBuilder sb = new StringBuilder();
//Generieren Sie Links zur Startseite und zur vorherigen Seite
if (currentPage == 0)//Wenn die aktuelle Seite die erste Seite ist
{
sb.Append(" Startseite Vorherige Seite ");
}
else if (currentPage == 1)//Wenn die aktuelle Seite die zweite Seite ist
{
sb.Append(" <a href='" + name + ".html" + "'>Homepage</a>");
sb.Append(" <a href='" + name + ".html" + "'>Vorherige Seite</a> ");
}
anders
{
sb.Append(" <a href='" + name + ".html" + "'>Homepage</a>");
sb.Append(" <a href='" + name + "-" + (currentPage - 1) + ".html'>Vorherige Seite</a> ");
}
int indexStart = currentPage - 5;
int indexEnd = currentPage + 5;
if (indexStart <= 0)
{
indexStart = 0;
indexEnd = 10;
}
if (indexStart > 0)
{
indexStart = aktuelle Seite - 5;
indexEnd = currentPage + 5;
}
if (currentPage >= pageTotal-10)
{
indexStart = pageTotal - 10;
indexEnd = pageTotal;
}
//Detaillierte Seitenzahlen generieren
for (int i = indexStart; i <= indexEnd; i++)
{
if (i == currentPage)
{
sb.Append(" " + (i+1) + " ");
}
else if (i == 0)//Wenn die aktuelle Seite die zweite Seite ist, muss sie separat verarbeitet werden
{
sb.Append(" <a href='" + name + ".html'>" + (i + 1) + "</a> ");
}
anders
{
sb.Append(" <a href='" + name + "-" + i + ".html'>" + (i + 1) + "</a> ");
}
}
//Nächste Seite und letzte Seite generieren
if (currentPage == pageTotal)//Wenn die aktuelle Seite die letzte Seite ist
{
sb.Append(" Nächste Seite ");
sb.Append(" Letzte Seite ");
}
anders
{
sb.Append(" <a href='"+name+"-"+(currentPage+1)+".html'>Nächste Seite</a> ");
sb.Append(" <a href='"+name+"-"+pageTotal+".html'>Letzte Seite</a>");
}
sb.Append(" " + (currentPage + 1) + "/" + (pageTotal + 1));
sb.Append(" Gehe zu:<select name="qq" id="ddlIndexList" onchange="javascript:location.href=this.value;">" );
string absolutePaths = HttpContext.Current.Request.Url.ToString();//URL abrufen
absolutePaths = absolutePaths.Substring(0, absolutePaths.LastIndexOf("/"))+"\" + path;//Rufen Sie die URL des Website-Stammpfads ab
for (int j = 1; j <= (pageTotal+1); j++)
{
if(j==1)
{
sb.Append("<option value='" + absolutePaths+" \"+name + ".html'>" + j + "</option>");
}
anders
{
sb.Append("<option value='" + absolutePaths+" \"+name + "-" + (j - 1) + ".html'>" + j + "</option>");
}
}
sb.Append("</select>");
sb.Append("<script type="text/javascript" language="javascript">");
if (currentPage == 0)//Erste Seite
{
string d = "document.getElementById("ddlIndexList").value = "" + name + ".html";";
sb.Append("document.getElementById("ddlIndexList").value = ""+name+".html";");
}
anders
{
string k = " document.getElementById("ddlIndexList").value = "" + name + "-" + currentPage + ".html";";
sb.Append(" document.getElementById("ddlIndexList").value = "" + name+"-"+currentPage + ".html";");
}
sb.Append("</script>");
return sb.ToString();
#endregion