-
أردت مؤخرًا أن أجعل موقع الويب ثابتًا، لذلك كتبت بعض الطرق بنفسي ونشرتها للمناقشة مع الجميع.
/// <الملخص>
/// فئة الوظيفة الثابتة لموقع الويب
/// </الملخص>
الفئة العامة CreateHtml
{
/// <الملخص>
/// قراءة محتوى القالب
/// </الملخص>
/// <param name="template">المسار النسبي للقالب</param>
/// <returns>محتوى القالب، إرجاع فشل القراءة ""</returns>
سلسلة عامة Html_ReadTemplate (قالب سلسلة)
{
#منطقة
StringBuilder str = new StringBuilder();// محتوى نمط التخزين
إذا (قالب!= قالب && فارغ!= "" && template.Length > 0)//if
{
يحاول
{
باستخدام (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(template), Encoding.GetEncoding("utf-8")))
{
سلسلة درجة الحرارة؛
while ((tempStr = sr.ReadLine()) != null)// إذا لم تتم قراءة نهاية الملف
{
str.Append(tempStr);
}
sr.Close();
}
}
قبض (استثناء على سبيل المثال)
{
عودة فارغة؛
}
}
إرجاع str.ToString();
#endregion
}
/// <الملخص>
/// إنشاء ملفات بناءً على المسار المطلق واسم الملف للملف الذي تم إنشاؤه
/// </الملخص>
/// <param name="fileAbsolutePath">المسار المطلق للملف</param>
/// <param name="htmlName">إنشاء اسم الملف</param>
/// <param name="htmlNote">اكتب محتوى الملف</param>
/// <returns>إنشاء حالة الملف، 1: نجاح 0: فشل</returns>
int العام Html_WriteTemplate (سلسلة fileAbsolutePath، سلسلة htmlName، سلسلة htmlNote)
{
#منطقة
if (fileAbsolutePath != null && fileAbsolutePath != "" && fileAbsolutePath.Length > 0 && htmlName != null && htmlName != "" && htmlName.Length > 0)
{
يحاول
{
باستخدام (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;// تم إنشاء الملف بنجاح
}
}
قبض (استثناء على سبيل المثال)
{
العودة 0؛
}
}
return 0;// فشل إنشاء الملف
#endregion
}
/// <الملخص>
/// اقرأ في الصفحات حسب كل المحتوى المقروء، وافصل كل صفحة بـ "|"
/// </الملخص>
/// <param name="contentText">المحتوى</param>
/// <param name="pageLogo">شعار الترحيل</param>
/// <returns>السلسلة بعد ترقيم الصفحات للمحتوى، ويتم فصل كل صفحة بـ "|"</returns>
السلسلة العامة Html_BackPageData (نص محتوى السلسلة، سلسلة pageLogo)
{
#منطقة
عدد العمليات المؤقتة = 0؛
StringBuilder sb = new StringBuilder();
بينما (عدد الحرارة >= 0)
{
int Index = contentText.IndexOf(pageLogo);//شعار الترحيل
if (index == -1)// إذا لم يكن هناك ترحيل
{
sb.Append(contentText);
استراحة؛
}
آخر
{
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++;
}
إرجاع sb.ToString();
#endregion
}
/// <الملخص>
/// إنشاء علامات الترحيل المقابلة للمحتوى، الصفحة الرئيسية، الصفحة السابقة، رقم الصفحة، الصفحة التالية، الصفحة الأخيرة (لجزء من المحتوى)
/// </الملخص>
/// <param name="currPageIndex">فهرس الصفحة الحالية</param>
/// <param name="pageCount">إجمالي عدد الصفحات</param>
/// <param name="noteName">اسم الملف (اسم الملف فقط بدون اللاحقة)</param>
/// <returns>علامة الترحيل المقابلة التي تم إنشاؤها بناءً على المحتوى</returns>
السلسلة العامة Html_Pager_Sign (int currPageIndex، int pageCount، string noteName)
{
#منطقة
string allSeprNote = "<table><tr><td> $firstpage$</td><td> $uppage$</td><td> $pagenumber$</ td><td> $drownpage$</td><td> $lastpage$</td></tr></table>";
سلسلة seprTempStr = "";
for (int i = 1; i <= pageCount; i++)// حلقة لإنشاء أرقام الصفحات لكل صفحة (هذه الحلقة تنشئ أرقام الصفحات فقط)
{
كثافة العمليات ن = ط - 1؛
//إذا كانت الصفحة الأولى
إذا (ط == 1)
{
seprTempStr += "<a href='" + noteName + ".html'>" + i+" "+ "</a>";
}
آخر
{
seprTempStr += "<a href='" + noteName +"-"+n+ ".html'>" + i+" " + "</a>";
}
}
allSeprNote = allSeprNote.Replace("$pagenumber$"، seprTempStr);// استبدل رقم الصفحة
// إنشاء الصفحة الرئيسية والصفحة السابقة
if (currPageIndex == 0)// إذا كانت الصفحة الحالية هي الصفحة الأولى، فلن يكون هناك رابط للصفحة السابقة أو الصفحة الرئيسية.
{
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//استبدال الصفحة الرئيسية
allSeprNote = allSeprNote.Replace("$uppage$", "الصفحة السابقة");//استبدال الصفحة السابقة
}
else if (currPageIndex == 1)// إذا كانت الصفحة الحالية هي الصفحة الثانية، فهناك روابط للصفحة السابقة والصفحة الرئيسية، وروابط الصفحة السابقة والصفحة الرئيسية هي نفسها، أي أن الوظائف هي نفسها
{
allSeprNote = allSeprNote.Replace("$firstpage$", "<a href='" + noteName + ".html'>الصفحة الرئيسية</a>");// استبدل الصفحة الرئيسية بالروابط
allSeprNote = allSeprNote.Replace("$uppage$", "<a href='" + noteName + ".html'>الصفحة السابقة</a>");//استبدل الصفحة السابقة لأنها الصفحة الثانية الرابط هي نفس الصفحة الرئيسية
}
آخر // إذا كانت صفحة أخرى
{
int temppageindex = currPageIndex - 1; // رقم الصفحة السابقة
allSeprNote = allSeprNote.Replace("$firstpage$", "<a href='" + noteName + ".html'>الصفحة الرئيسية</a>");// استبدال الصفحة الرئيسية
allSeprNote = allSeprNote.Replace("$uppage$", "<a href='" + noteName +"-"+temppageindex+ ".html'>الصفحة السابقة</a>");// استبدال الصفحة السابقة
}
// إنشاء الصفحة الأخيرة والصفحة التالية
if (currPageIndex == pageCount - 1)// إذا كانت الصفحة الحالية هي الصفحة الأخيرة، فإن الصفحة التالية والصفحة الأخيرة لهما نفس الوظائف وليس لهما روابط.
{
allSeprNote = allSeprNote.Replace("$lastpage$", "الصفحة الأخيرة");//استبدال الصفحة الأخيرة
allSeprNote = allSeprNote.Replace("$drownpage$", "الصفحة التالية");// استبدل الصفحة التالية
}
آخر // إذا كانت صفحة أخرى
{
int temppageindex = currPageIndex+1;// رقم الصفحة التالية
allSeprNote=allSeprNote.Replace("$lastpage$", "<a href='" + noteName + "-" + (pageCount - 1) + ".html'>الصفحة الأخيرة</a>");//إنشاء ذيل صفحة
allSeprNote=allSeprNote.Replace("$drownpage$", "<a href='" + noteName + "-" + temppageindex + ".html'>الصفحة التالية</a>");
}
إرجاع الكلSeprNote;
#endregion
}
/// <الملخص>
/// إنشاء علامات الترحيل لصفحات القائمة
/// </الملخص>
/// <param name="pageTotal">إجمالي عدد الصفحات</param>
/// <param name="currentPage">فهرس الصفحة الحالي (يبدأ من الصفر)</param>
/// <param name="pageSize">عدد عناصر المحتوى المعروضة في كل صفحة</param>
/// <param name="name">اسم الملف (بدون لاحقة)</param>
/// <returns>علامة الترحيل</returns>
سلسلة عامة Html_Pager_Multi(عدد الصفحات إجمالي، عدد الصفحات الحالية، حجم حجم الصفحات، اسم السلسلة، مسار السلسلة)
{
#منطقة
pageTotal = pageTotal - 1;
StringBuilder sb = new StringBuilder();
// إنشاء روابط للصفحة الرئيسية والصفحة السابقة
if (currentPage == 0)// إذا كانت الصفحة الحالية هي الصفحة الأولى
{
sb.Append(" الصفحة الرئيسية الصفحة السابقة ");
}
else if (currentPage == 1)//إذا كانت الصفحة الحالية هي الصفحة الثانية
{
sb.Append(" <a href='" + name + ".html" + "'>الصفحة الرئيسية</a>");
sb.Append(" <a href='" + name + ".html" + "'>الصفحة السابقة</a> ");
}
آخر
{
sb.Append(" <a href='" + name + ".html" + "'>الصفحة الرئيسية</a>");
sb.Append(" <a href='" + name + "-" + (currentPage - 1) + ".html'>الصفحة السابقة</a> ");
}
int IndexStart = currentPage - 5;
int IndexEnd = currentPage + 5;
إذا (indexStart <= 0)
{
مؤشر البداية = 0;
مؤشر النهاية = 10؛
}
إذا (indexStart > 0)
{
مؤشر البداية = الصفحة الحالية - 5؛
IndexEnd = currentPage + 5;
}
إذا (الصفحة الحالية >= pageTotal-10)
{
مؤشر البداية = pageTotal - 10;
IndexEnd = pageTotal;
}
// إنشاء أرقام صفحات مفصلة
لـ (int i = IndexStart; i <= IndexEnd; i++)
{
إذا (i == الصفحة الحالية)
{
sb.Append(" " + (i+1) + " ");
}
else if (i == 0)//إذا كانت الصفحة الحالية هي الصفحة الثانية، فيجب معالجتها بشكل منفصل
{
sb.Append(" <a href='" + name + ".html'>" + (i + 1) + "</a> ");
}
آخر
{
sb.Append(" <a href='" + name + "-" + i + ".html'>" + (i + 1) + "</a> ");
}
}
// إنشاء الصفحة التالية والصفحة الأخيرة
if (currentPage == pageTotal)// إذا كانت الصفحة الحالية هي الصفحة الأخيرة
{
sb.Append(" الصفحة التالية ");
sb.Append(" الصفحة الأخيرة ");
}
آخر
{
sb.Append(" <a href='"+name+"-"+(currentPage+1)+".html'>الصفحة التالية</a> ");
sb.Append(" <a href='"+name+"-"+pageTotal+".html'>الصفحة الأخيرة</a>");
}
sb.Append(" " + (الصفحة الحالية + 1) + "/" + (pageTotal + 1));
sb.Append(" انتقل إلى:<select name="qq" id="ddlIndexList" onchange="javascript:location.href=this.value;">" );
السلسلة المطلقة = HttpContext.Current.Request.Url.ToString();//احصل على عنوان url
طلقةالمسارات = مطلقة.Substring(0, مطلقةPaths.LastIndexOf("/"))+"\" + مسار;// احصل على عنوان url لمسار جذر موقع الويب
لـ (int j = 1; j <= (pageTotal+1); j++)
{
إذا (ي==1)
{
sb.Append("<option value='" +AbsolutePaths+" \"+name + ".html'>" + j + "</option>");
}
آخر
{
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)//الصفحة الأولى
{
string d = "document.getElementById("ddlIndexList").value = "" + name + ".html";";
sb.Append("document.getElementById("ddlIndexList").value = ""+name+".html";");
}
آخر
{
string k = " document.getElementById("ddlIndexList").value = "" + name + "-" +currentPage + ".html";";
sb.Append(" document.getElementById("ddlIndexList").value = "" + name+"-"+currentPage + ".html";");
}
sb.Append("</script>");
إرجاع sb.ToString();
#endregion