-
Recentemente, quis tornar o site estático, então escrevi alguns métodos e os publiquei para discussão com todos.
///
/// Classe de função estática do site
///
classe pública CreateHtml
{
///
/// Ler o conteúdo do modelo
///
/// Caminho relativo do modelo
///
string pública Html_ReadTemplate (modelo de string)
{
#região
StringBuilder str = new StringBuilder();//Conteúdo do padrão de armazenamento
if (template! = null && template! = "" && template.Length > 0)//if
{
tentar
{
usando (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(template), Encoding.GetEncoding("utf-8")))
{
string tempStr;
while ((tempStr = sr.ReadLine()) != null)//Se o final do arquivo não for lido
{
str.Append(tempStr);
}
sr.Fechar();
}
}
pegar (exceção ex)
{
retornar nulo;
}
}
retornar str.ToString();
#endregion
}
///
/// Gera arquivos com base no caminho absoluto e no nome do arquivo gerado
///
/// Caminho absoluto do arquivo
/// Gerar nome do arquivo
/// Escrever o conteúdo do arquivo
///
public int Html_WriteTemplate(string fileAbsolutePath, string htmlName,string htmlNote)
{
#região
if (fileAbsolutePath != null && fileAbsolutePath != "" && fileAbsolutePath.Length > 0 && htmlName != null && htmlName != "" && htmlName.Length > 0)
{
tentar
{
usando (FileStream fs = new FileStream(fileAbsolutePath + "\" + htmlName, FileMode.Create, FileAccess.Write, FileShare.Write))
{
StreamWriter sw = novo StreamWriter(fs, System.Text.Encoding.GetEncoding("utf-8"));
sw.Write(htmlNota);
sw.Fechar();
fs.Fechar();
return 1; //Arquivo gerado com sucesso
}
}
pegar (exceção ex)
{
retornar 0;
}
}
return 0; //Falha na geração do arquivo
#endregion
}
///
/// Ler as páginas de acordo com todo o conteúdo lido, e separar cada página com "|"
///
/// Conteúdo
/// Logotipo de paginação
///
string pública Html_BackPageData(string contentText,string pageLogo)
{
#região
int contagem temporária = 0;
StringBuilder sb = new StringBuilder();
enquanto (contagem de temperatura >= 0)
{
int index = contentText.IndexOf(pageLogo); // Logotipo da paginação
if (index == -1)//Se não houver paginação
{
sb.Append(contentText);
quebrar;
}
outro
{
sb.Append(contentText.Substring(0,index)+"|");
int início = índice + pageLogo.Length + 1;
int end = contentText.Length-index-pageLogo.Length - 1;
contentText=contentText.Substring(início, fim);
}
contagem temporária++;
}
return sb.ToString();
#endregion
}
///
/// Gera sinalizadores de paginação correspondentes para o conteúdo, página inicial, página anterior, número da página, próxima página, última página (para uma parte do conteúdo)
///
/// Índice da página atual
/// Número total de páginas
/// Nome do arquivo (apenas o nome do arquivo sem o sufixo)
///
string pública Html_Pager_Sign (int currPageIndex, int pageCount, string noteName)
{
#região
string allSeprNote = "
"; $firstpage$ $uppage$ $pagenumber$ td> $drownpage$ $lastpage$
string seprTempStr = "";
for (int i = 1; i <= pageCount; i++)//Loop para gerar números de página para cada página (este loop gera apenas números de página)
{
int n = eu - 1;
//Se for a primeira página
se(eu==1)
{
seprTempStr += "" + i+" "+ "";
}
outro
{
seprTempStr += "" + i+" ";
}
}
allSeprNote = allSeprNote.Replace("$pagenumber$", seprTempStr);//Substitua o número da página
//Gera a página inicial e a página anterior
if (currPageIndex == 0)//Se a página atual for a primeira página, não haverá link para a página anterior ou página inicial.
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Substitui a página inicial
allSeprNote = allSeprNote.Replace("$uppage$", "página anterior");//Substitui a página anterior
}
else if (currPageIndex == 1)//Se a página atual for a segunda página, existem links para a página anterior e a página inicial, e os links para a página anterior e a página inicial são os mesmos, ou seja, o funções são as mesmas
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Substitua a página inicial por links
allSeprNote = allSeprNote.Replace("$uppage$", "Página anterior");//Substitua a página anterior porque é a segunda página O link é igual à página inicial
}
else //se for outra página
{
int temppageindex = currPageIndex - 1; //Número da página anterior
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//Substitua a página inicial
allSeprNote = allSeprNote.Replace("$uppage$", "Página anterior");//Substituir a página anterior
}
//Gera última página e próxima página
if (currPageIndex == pageCount - 1)//Se a página atual for a última página, a próxima página e a última página terão as mesmas funções e não terão links.
{
allSeprNote = allSeprNote.Replace("$lastpage$", "última página");//Substituir a última página
allSeprNote = allSeprNote.Replace("$drownpage$", "próxima página");//Substituir a próxima página
}
else //se for outra página
{
int temppageindex = currPageIndex+1;//próximo número da página
allSeprNote=allSeprNote.Replace("$lastpage$", "Última página");//Gerar cauda Página
allSeprNote=allSeprNote.Replace("$drownpage$", "Próxima página");
}
return allSeprNote;
#endregion
}
///
/// Gera sinalizadores de paginação para páginas de lista
///
/// Número total de páginas
/// Índice da página atual (começando do zero)
/// Número de itens de conteúdo exibidos em cada página
/// Nome do arquivo (sem sufixo)
///
string pública Html_Pager_Multi(int pageTotal, int currentPage, int pageSize, nome da string, caminho da string)
{
#região
páginaTotal = páginaTotal - 1;
StringBuilder sb = new StringBuilder();
//Gerar links da página inicial e da página anterior
if (currentPage == 0) //Se a página atual for a primeira página
{
sb.Append("Página inicial");
}
else if (currentPage == 1) //Se a página atual for a segunda página
{
sb.Append(" Página inicial");
sb.Append(" Página anterior ");
}
outro
{
sb.Append(" Página inicial");
sb.Append(" Página anterior ");
}
int indexStart = páginaatual - 5;
int indexEnd = páginaatual + 5;
if (indexStart <= 0)
{
indexInício = 0;
indexEnd = 10;
}
if (indexStart > 0)
{
indexStart = páginaatual - 5;
indexEnd = páginaatual + 5;
}
if (página atual >= pageTotal-10)
{
indexStart = páginaTotal - 10;
indexEnd = páginaTotal;
}
//Gera números de páginas detalhados
for (int i = indexStart; i <= indexEnd; i++)
{
if (i == páginaatual)
{
sb.Append(" " + (i+1) + " ");
}
else if (i == 0)//Se a página atual for a segunda página, ela precisa ser processada separadamente
{
sb.Append(" " + (i + 1) + " ");
}
outro
{
sb.Append(" " + (i + 1) + " ");
}
}
//Gera a próxima página e a última página
if (currentPage == pageTotal) //Se a página atual for a última página
{
sb.Append(" Próxima página ");
sb.Append(" Última página ");
}
outro
{
sb.Append(" Próxima página ");
sb.Append(" Última página");
}
sb.Append(" " + (PáginaAtual + 1) + "/" + (PáginaTotal + 1));
sb.Append(" Vá para:");
sb.Append("");
return sb.ToString();
#endregion