-
J'ai récemment voulu rendre le site Web statique, j'ai donc écrit moi-même quelques méthodes et les ai publiées pour en discuter avec tout le monde.
///
/// Classe de fonctions statiques du site Web
///
classe publique CreateHtml
{
///
/// Lire le contenu du modèle
///
/// Chemin relatif du modèle
///
chaîne publique Html_ReadTemplate (modèle de chaîne)
{
#région
StringBuilder str = new StringBuilder();//Contenu du modèle de stockage
if (template != null && template != "" && template.Length > 0)//if
{
essayer
{
en utilisant (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(template), Encoding.GetEncoding("utf-8")))
{
chaîne tempStr;
while ((tempStr = sr.ReadLine()) != null)//Si la fin du fichier n'est pas lue
{
str.Append(tempStr);
}
sr.Close();
}
}
attraper (Exception ex)
{
renvoie null ;
}
}
return str.ToString();
#endregion
}
///
/// Générer des fichiers basés sur le chemin absolu et le nom du fichier généré
///
/// Chemin absolu du fichier
/// Générer le nom du fichier
/// Écrire le contenu du fichier
///
public int Html_WriteTemplate (chaîne fileAbsolutePath, chaîne htmlName, chaîne htmlNote)
{
#région
if (fileAbsolutePath != null && fileAbsolutePath != "" && fileAbsolutePath.Length > 0 && htmlName != null && htmlName != "" && htmlName.Length > 0)
{
essayer
{
en utilisant (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;//Fichier généré avec succès
}
}
attraper (Exception ex)
{
renvoie 0 ;
}
}
return 0 ; // La génération du fichier a échoué
#endregion
}
///
/// Lire les pages en fonction de tout le contenu lu, et séparer chaque page par "|"
///
/// Contenu
/// Logo de pagination
///
chaîne publique Html_BackPageData (chaîne contentText, chaîne pageLogo)
{
#région
int tempcount = 0 ;
StringBuilder sb = new StringBuilder();
while (compte temporaire >= 0)
{
int index = contentText.IndexOf(pageLogo);//Logo de pagination
if (index == -1)//S'il n'y a pas de pagination
{
sb.Append(contentText);
casser;
}
autre
{
sb.Append(contentText.Substring(0,index)+"|");
int start = index + pageLogo.Length + 1;
int end = contentText.Length-index-pageLogo.Length - 1;
contentText=contentText.Substring(début, fin);
}
tempcount++;
}
return sb.ToString();
#endregion
}
///
/// Générer les indicateurs de pagination correspondants pour le contenu, la page d'accueil, la page précédente, le numéro de page, la page suivante, la dernière page (pour un élément de contenu)
///
/// Index de la page actuelle
/// Nombre total de pages
/// Nom du fichier (uniquement le nom du fichier sans le suffixe)
///
chaîne publique Html_Pager_Sign (int currPageIndex, int pageCount, chaîne noteName)
{
#région
string allSeprNote = "
"; $firstpage$ $uppage$ $pagenumber$ td> $drownpage$ $lastpage$
chaîne seprTempStr = "" ;
for (int i = 1; i <= pageCount; i++)//Boucle pour générer des numéros de page pour chaque page (cette boucle génère uniquement des numéros de page)
{
int n = je - 1 ;
//Si c'est la première page
si(i==1)
{
seprTempStr += "" + i+" "+ "";
}
autre
{
seprTempStr += "" + i+" " + "";
}
}
allSeprNote = allSeprNote.Replace("$pagenumber$", seprTempStr);//Remplacer le numéro de page
// Générer la page d'accueil et la page précédente
if (currPageIndex == 0)//Si la page actuelle est la première page, il n'y aura aucun lien vers la page précédente ou la page d'accueil.
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Remplacer la page d'accueil
allSeprNote = allSeprNote.Replace("$uppage$", "page précédente");//Remplacer la page précédente
}
else if (currPageIndex == 1)//Si la page actuelle est la deuxième page, il existe des liens vers la page précédente et la page d'accueil, et les liens vers la page précédente et la page d'accueil sont les mêmes, c'est-à-dire le les fonctions sont les mêmes
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Remplacer la page d'accueil par des liens
allSeprNote = allSeprNote.Replace("$uppage$", "Page précédente");//Remplacer la page précédente car c'est la deuxième page Le lien est le même que la page d'accueil
}
sinon//si c'est une autre page
{
int temppageindex = currPageIndex - 1; //Numéro de la page précédente
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Remplacer la page d'accueil
allSeprNote = allSeprNote.Replace("$uppage$", "Page précédente");//Remplacer la page précédente
}
// Générer la dernière page et la page suivante
if (currPageIndex == pageCount - 1)//Si la page actuelle est la dernière page, la page suivante et la dernière page ont les mêmes fonctions et n'ont pas de liens.
{
allSeprNote = allSeprNote.Replace("$lastpage$", "last page");//Remplacer la dernière page
allSeprNote = allSeprNote.Replace("$drownpage$", "page suivante");//Remplacer la page suivante
}
sinon//si c'est une autre page
{
int temppageindex = currPageIndex+1;//numéro de la page suivante
allSeprNote=allSeprNote.Replace("$lastpage$", "Dernière page");//Générer la queue Page
allSeprNote=allSeprNote.Replace("$drownpage$", "Page suivante");
}
renvoie allSeprNote ;
#endregion
}
///
/// Générer des indicateurs de pagination pour les pages de liste
///
/// Nombre total de pages
/// Index de la page actuelle (à partir de zéro)
/// Nombre d'éléments de contenu affichés sur chaque page
/// Nom du fichier (sans suffixe)
///
chaîne publique Html_Pager_Multi (int pageTotal, int currentPage, int pageSize, nom de chaîne, chemin de chaîne)
{
#région
pageTotal = pageTotal - 1 ;
StringBuilder sb = new StringBuilder();
// Générer des liens vers la page d'accueil et la page précédente
if (currentPage == 0)//Si la page actuelle est la première page
{
sb.Append(" Page d'accueil Page précédente ");
}
else if (currentPage == 1)//Si la page actuelle est la deuxième page
{
sb.Append(" Page d'accueil");
sb.Append(" Page précédente ");
}
autre
{
sb.Append(" Page d'accueil");
sb.Append(" Page précédente ");
}
int indexStart = pageactuelle - 5 ;
int indexEnd = pageactuelle + 5 ;
si (indexDébut <= 0)
{
indexDébut = 0 ;
indexFin = 10 ;
}
si (indexDébut > 0)
{
indexStart = page actuelle - 5 ;
indexFin = pageactuelle + 5 ;
}
si (pageactuelle >= pageTotal-10)
{
indexDébut = pageTotal - 10 ;
indexFin = pageTotal ;
}
//Générer des numéros de page détaillés
pour (int i = indexStart; i <= indexEnd; i++)
{
si (i == PageActuelle)
{
sb.Append(" " + (i+1) + " ");
}
sinon if (i == 0)//Si la page actuelle est la deuxième page, elle doit être traitée séparément
{
sb.Append(" " + (i + 1) + " ");
}
autre
{
sb.Append(" " + (i + 1) + " ");
}
}
// Générer la page suivante et la dernière page
if (currentPage == pageTotal)//Si la page actuelle est la dernière page
{
sb.Append(" Page suivante ");
sb.Append(" Dernière page ");
}
autre
{
sb.Append(" Page suivante ");
sb.Append(" Dernière page");
}
sb.Append(" " + (currentPage + 1) + "/" + (pageTotal + 1));
sb.Append(" Aller à :");
sb.Append("");
return sb.ToString();
#endregion