-
Recientemente quise hacer que el sitio web fuera estático, así que escribí algunos métodos yo mismo y los publiqué para discutirlos con todos.
///
/// Clase de función estática del sitio web
///
clase pública CreateHtml
{
///
/// Leer el contenido de la plantilla
///
/// Ruta relativa de la plantilla
///
cadena pública Html_ReadTemplate (plantilla de cadena)
{
#región
StringBuilder str = new StringBuilder();//Contenido del patrón de almacenamiento
if (plantilla! = nulo && plantilla! = "" && plantilla.Longitud > 0)//si
{
intentar
{
usando (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(plantilla), Encoding.GetEncoding("utf-8")))
{
cadena tempStr;
while ((tempStr = sr.ReadLine()) != null)//Si no se lee el final del archivo
{
str.Append(tempStr);
}
sr.Cerrar();
}
}
captura (Excepción ex)
{
devolver nulo;
}
}
devolver str.ToString();
#regiónfinal
}
///
/// Genera archivos según la ruta absoluta y el nombre del archivo generado
///
/// Ruta absoluta del archivo
/// Generar nombre de archivo
/// Escribir contenido del archivo
///
public int Html_WriteTemplate (cadena fileAbsolutePath, cadena htmlName, cadena htmlNote)
{
#región
if (fileAbsolutePath!= null && fileAbsolutePath!= "" && fileAbsolutePath.Length > 0 && htmlName!= null && htmlName!= "" && htmlName.Length > 0)
{
intentar
{
usando (FileStream fs = new FileStream(fileAbsolutePath + "\" + htmlName, FileMode.Create, FileAccess.Write, FileShare.Write))
{
StreamWriter sw = nuevo StreamWriter(fs, System.Text.Encoding.GetEncoding("utf-8"));
sw.Write(htmlNota);
sw.Cerrar();
fs.Cerrar();
return 1;//Archivo generado exitosamente
}
}
captura (Excepción ex)
{
devolver 0;
}
}
return 0;//Error en la generación del archivo
#regiónfinal
}
///
/// Lee las páginas de acuerdo con todo el contenido leído y separa cada página con "|"
///
/// Contenido
/// Logotipo de paginación
///
cadena pública Html_BackPageData (cadena texto de contenido, cadena logotipo de página)
{
#región
int cuentatemperatura = 0;
StringBuilder sb = nuevo StringBuilder();
mientras (recuento temporal >= 0)
{
int index = contentText.IndexOf(pageLogo);//Logotipo de paginación
if (index == -1)//Si no hay paginación
{
sb.Append(contentText);
romper;
}
demás
{
sb.Append(contentText.Substring(0,index)+"|");
int inicio = índice + pageLogo.Length + 1;
int end = contentText.Length-index-pageLogo.Length - 1;
contentText=contentText.Substring(inicio, fin);
}
recuento temporal++;
}
devolver sb.ToString();
#regiónfinal
}
///
/// Generar indicadores de paginación correspondientes para el contenido, página de inicio, página anterior, número de página, página siguiente, última página (para un contenido)
///
/// Índice de página actual
/// Número total de páginas
/// Nombre del archivo (solo el nombre del archivo sin el sufijo)
///
cadena pública Html_Pager_Sign (int currPageIndex, int pageCount, cadena noteName)
{
#región
string allSeprNote = "
"; $primerapágina$ $uppage$ $númerodepágina$ td> $drownpage$ $lastpage$
cadena seprTempStr = "";
for (int i = 1; i <= pageCount; i++)//Bucle para generar números de página para cada página (este bucle solo genera números de página)
{
int norte = yo - 1;
//Si es la primera página
si(yo==1)
{
seprTempStr += "" + i+" "+ "";
}
demás
{
seprTempStr += "" + i+" " + "";
}
}
allSeprNote = allSeprNote.Replace("$pagenumber$", seprTempStr);//Reemplazar el número de página
//Generar página de inicio y página anterior
if (currPageIndex == 0) // Si la página actual es la primera página, no habrá ningún enlace a la página anterior ni a la página de inicio.
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Reemplazar la página de inicio
allSeprNote = allSeprNote.Replace("$uppage$", "página anterior");//Reemplazar la página anterior
}
else if (currPageIndex == 1) // Si la página actual es la segunda página, hay enlaces a la página anterior y a la página de inicio, y los enlaces a la página anterior y a la página de inicio son los mismos, es decir, el las funciones son las mismas
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Reemplazar la página de inicio con enlaces
allSeprNote = allSeprNote.Replace("$uppage$", "Página anterior");//Reemplazar la página anterior porque es la segunda página El enlace es lo mismo que la pagina de inicio
}
else//si es otra página
{
int temppageindex = currPageIndex - 1 //Número de página anterior
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Reemplazar la página de inicio
allSeprNote = allSeprNote.Replace("$uppage$", "Página anterior");//Reemplazar la página anterior
}
//Generar la última página y la página siguiente
if (currPageIndex == pageCount - 1) // Si la página actual es la última página, la página siguiente y la última página tienen las mismas funciones y no tienen enlaces.
{
allSeprNote = allSeprNote.Replace("$lastpage$", "última página");//Reemplazar la última página
allSeprNote = allSeprNote.Replace("$drownpage$", "página siguiente");//Reemplazar la página siguiente
}
else//si es otra página
{
int temppageindex = currPageIndex+1;//número de página siguiente
allSeprNote=allSeprNote.Replace("$lastpage$", "Última página");//Generar cola Página
allSeprNote=allSeprNote.Replace("$drownpage$", "Página siguiente");
}
devolver todas las notas de septiembre;
#regiónfinal
}
///
/// Generar indicadores de paginación para páginas de lista
///
/// Número total de páginas
/// Índice de página actual (comenzando desde cero)
/// Número de elementos de contenido mostrados en cada página
/// Nombre de archivo (sin sufijo)
///
cadena pública Html_Pager_Multi (int pageTotal, int currentPage, int pageSize, nombre de cadena, ruta de cadena)
{
#región
total de páginas = total de páginas - 1;
StringBuilder sb = nuevo StringBuilder();
//Generar enlaces a la página de inicio y a la página anterior
if (currentPage == 0)//Si la página actual es la primera página
{
sb.Append(" Página de inicio Página anterior ");
}
else if (currentPage == 1)//Si la página actual es la segunda página
{
sb.Append(" Página de inicio");
sb.Append(" Página anterior ");
}
demás
{
sb.Append(" Página de inicio");
sb.Append(" Página anterior ");
}
int indexStart = páginaactual - 5;
int indexEnd = páginaactual + 5;
si (índice de inicio <= 0)
{
índiceInicio = 0;
Fin del índice = 10;
}
si (inicioinicio > 0)
{
indexStart = página actual - 5;
fin del índice = página actual + 5;
}
si (Página actual >= páginaTotal-10)
{
indexStart = páginaTotal - 10;
finíndice = totalpágina;
}
//Generar números de página detallados
para (int i = indexStart; i <= indexEnd; i++)
{
si (i == página actual)
{
sb.Append(" " + (i+1) + " ");
}
else if (i == 0) // Si la página actual es la segunda página, debe procesarse por separado
{
sb.Append(" " + (i + 1) + " ");
}
demás
{
sb.Append(" " + (i + 1) + " ");
}
}
//Generar página siguiente y última página
if (currentPage == pageTotal)//Si la página actual es la última página
{
sb.Append(" Página siguiente ");
sb.Append(" Última página ");
}
demás
{
sb.Append(" Página siguiente ");
sb.Append(" Última página");
}
sb.Append(" " + (PáginaActual + 1) + "/" + (TotalPágina + 1));
sb.Append(" Ir a:");
sb.Append("
if (currentPage == 0)//Primera página
{
string d = "document.getElementById("ddlIndexList").value = "" + nombre + ".html";";
sb.Append("document.getElementById("ddlIndexList").value = ""+nombre+".html";");
}
demás
{
string k = " document.getElementById("ddlIndexList").value = "" + nombre + "-" + currentPage + ".html";";
sb.Append(" document.getElementById("ddlIndexList").value = "" + nombre+"-"+currentPage + ".html";");
}
sb.Append("");
devolver sb.ToString();
#regiónfinal