-
เมื่อเร็วๆ นี้ฉันต้องการทำให้เว็บไซต์เป็นแบบคงที่ ดังนั้นฉันจึงเขียนวิธีการบางอย่างด้วยตัวเองและโพสต์ไว้เพื่อพูดคุยกับทุกคน
/// <สรุป>
/// คลาสฟังก์ชันคงที่ของเว็บไซต์
/// </สรุป>
CreateHtml คลาสสาธารณะ
-
/// <สรุป>
/// อ่านเนื้อหาเทมเพลต
/// </สรุป>
/// <param name="template">เส้นทางสัมพัทธ์ของเทมเพลต</param>
/// <returns>เนื้อหาเทมเพลต ความล้มเหลวในการอ่านส่งคืน ""</returns>
สตริงสาธารณะ Html_ReadTemplate (เทมเพลตสตริง)
-
#ภูมิภาค
StringBuilder str = new StringBuilder();//เนื้อหารูปแบบการจัดเก็บ
ถ้า (เทมเพลต != null && เทมเพลต != "" && template.Length > 0)//if
-
พยายาม
-
การใช้ (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath(template), Encoding.GetEncoding("utf-8")))
-
สตริง tempStr;
ในขณะที่ ((tempStr = sr.ReadLine()) != null)//หากไม่ได้อ่านจุดสิ้นสุดของไฟล์
-
str.ผนวก(tempStr);
-
sr.ปิด();
-
-
catch (ข้อยกเว้น เช่น)
-
กลับเป็นโมฆะ;
-
-
กลับ str.ToString();
#ภูมิภาคสุดท้าย
-
/// <สรุป>
/// สร้างไฟล์ตามเส้นทางที่แน่นอนและชื่อไฟล์ของไฟล์ที่สร้างขึ้น
/// </สรุป>
/// <param name="fileAbsolutePath">พาธสัมบูรณ์ของไฟล์</param>
/// <param name="htmlName">สร้างชื่อไฟล์</param>
/// <param name="htmlNote">เขียนเนื้อหาไฟล์</param>
/// <returns>สร้างสถานะไฟล์ 1: สำเร็จ 0: ล้มเหลว</returns>
สาธารณะ int Html_WriteTemplate (ไฟล์สตริง AbsolutePath, สตริง htmlName, สตริง htmlNote)
-
#ภูมิภาค
ถ้า (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 = StreamWriter ใหม่ (fs, System.Text.Encoding.GetEncoding("utf-8"));
sw.เขียน(htmlหมายเหตุ);
sw.ปิด();
fs.ปิด();
return 1;//สร้างไฟล์สำเร็จ
-
-
catch (ข้อยกเว้น เช่น)
-
กลับ 0;
-
-
กลับ 0;//การสร้างไฟล์ล้มเหลว
#ภูมิภาคสุดท้าย
-
/// <สรุป>
/// อ่านทีละหน้าตามเนื้อหาที่อ่านทั้งหมด และแยกแต่ละหน้าด้วย "|"
/// </สรุป>
/// <param name="contentText">เนื้อหา</param>
/// <param name="pageLogo">โลโก้เพจ</param>
/// <returns>สตริงหลังจากเนื้อหาถูกแบ่งหน้า แต่ละหน้าจะถูกคั่นด้วย "|"</returns>
สตริงสาธารณะ Html_BackPageData (สตริง contentText, สตริง pageLogo)
-
#ภูมิภาค
จำนวนอุณหภูมิ int = 0;
StringBuilder sb = StringBuilder ใหม่ ();
ในขณะที่ (จำนวนอุณหภูมิ >= 0)
-
int index = contentText.IndexOf(pageLogo);//โลโก้เพจจิ้ง
if (index == -1)//หากไม่มีเพจ
-
sb.ผนวก(contentText);
หยุดพัก;
-
อื่น
-
sb.Append(contentText.Substring(0,index)+"|");
int start = ดัชนี + pageLogo.Length + 1;
int end = contentText.Length-index-pageLogo.Length - 1;
contentText=contentText.Substring(เริ่มต้น, สิ้นสุด);
-
ชั่วคราว++;
-
กลับ sb.ToString();
#ภูมิภาคสุดท้าย
-
/// <สรุป>
/// สร้างแฟล็กเพจที่สอดคล้องกันสำหรับเนื้อหา หน้าแรก หน้าก่อนหน้า หมายเลขหน้า หน้าถัดไป หน้าสุดท้าย (สำหรับเนื้อหา)
/// </สรุป>
/// <param name="currPageIndex">ดัชนีหน้าปัจจุบัน</param>
/// <param name="pageCount">จำนวนหน้าทั้งหมด</param>
/// <param name="noteName">ชื่อไฟล์ (เฉพาะชื่อไฟล์ที่ไม่มีส่วนต่อท้าย)</param>
/// <returns>แฟล็กเพจที่เกี่ยวข้องที่สร้างขึ้นตามเนื้อหา</returns>
สตริงสาธารณะ Html_Pager_Sign (int currPageIndex, int pageCount, สตริง 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++)//Loop เพื่อสร้างหมายเลขหน้าสำหรับแต่ละหน้า (การวนซ้ำนี้สร้างเฉพาะหมายเลขหน้า)
-
int n = ฉัน - 1;
//ถ้าเป็นหน้าแรก
ถ้า(i==1)
-
seprTempStr += "<a href='" + noteName + ".html'>" + i+" "+ "</a>";
-
อื่น
-
seprTempStr += "<a href='" + noteName +"-"+n+ ".html'>" + i+" " + "</a>";
-
-
allSeprNote = allSeprNote.Replace("$pagenumber$", seprTempStr);//แทนที่หมายเลขหน้า
//สร้างโฮมเพจและเพจก่อนหน้า
ถ้า (currPageIndex == 0)//หากหน้าปัจจุบันเป็นหน้าแรก จะไม่มีลิงก์ไปยังหน้าก่อนหน้าหรือหน้าแรก
-
allSeprNote = allSeprNote.Replace("$firstpage$", "Homepage");//แทนที่หน้าแรก
allSeprNote = allSeprNote.Replace("$uppage$", "previous page");//แทนที่หน้าก่อนหน้า
-
มิฉะนั้นถ้า (currPageIndex == 1)//ถ้าหน้าปัจจุบันเป็นหน้าที่ 2 จะมีลิงค์ไปหน้าก่อนหน้าและหน้าแรกและลิงค์ไปหน้าก่อนหน้าและหน้าแรกเหมือนกันนั่นคือ ฟังก์ชั่นก็เหมือนกัน
-
allSeprNote = allSeprNote.Replace("$firstpage$", "<a href='" + noteName + ".html'>หน้าแรก</a>");//แทนที่หน้าแรกด้วยลิงก์
allSeprNote = allSeprNote.Replace("$uppage$", "<a href='" + noteName + ".html'>หน้าก่อนหน้า</a>");//แทนที่หน้าก่อนหน้าเนื่องจากเป็นหน้าที่สอง ลิงค์ จะเหมือนกับหน้าแรก
-
else//หากเป็นหน้าอื่น
-
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$", "last page");//แทนที่หน้าสุดท้าย
allSeprNote = allSeprNote.Replace("$drownpage$", "next page");//แทนที่หน้าถัดไป
-
else//หากเป็นหน้าอื่น
-
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;
#ภูมิภาคสุดท้าย
-
/// <สรุป>
/// สร้างแฟล็กเพจสำหรับหน้ารายการ
/// </สรุป>
/// <param name="pageTotal">จำนวนหน้าทั้งหมด</param>
/// <param name="currentPage">ดัชนีหน้าปัจจุบัน (เริ่มจากศูนย์)</param>
/// <param name="pageSize">จำนวนรายการเนื้อหาที่แสดงในแต่ละหน้า</param>
/// <param name="name">ชื่อไฟล์ (ไม่มีส่วนต่อท้าย)</param>
/// <returns>การตั้งค่าสถานะเพจ</returns>
สตริงสาธารณะ Html_Pager_Multi (int pageTotal, int currentPage, int pageSize, ชื่อสตริง, เส้นทางสตริง)
-
#ภูมิภาค
ผลรวมหน้า = ผลรวมหน้า - 1;
StringBuilder sb = StringBuilder ใหม่ ();
//สร้างลิงค์โฮมเพจและเพจก่อนหน้า
if (currentPage == 0)//ถ้าหน้าปัจจุบันเป็นหน้าแรก
-
sb.Append(" หน้าแรก หน้าก่อนหน้า ");
-
else if (currentPage == 1)//ถ้าหน้าปัจจุบันเป็นหน้าที่ 2
-
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 = หน้าปัจจุบัน - 5;
int indexEnd = หน้าปัจจุบัน + 5;
ถ้า (ดัชนีเริ่มต้น <= 0)
-
ดัชนีเริ่มต้น = 0;
ดัชนีสิ้นสุด = 10;
-
ถ้า (ดัชนีเริ่มต้น > 0)
-
indexStart = หน้าปัจจุบัน - 5;
indexEnd = หน้าปัจจุบัน + 5;
-
ถ้า (หน้าปัจจุบัน >= หน้ารวม-10)
-
indexStart = pageTotal - 10;
indexEnd = ผลรวมหน้า;
-
//สร้างหมายเลขหน้าโดยละเอียด
สำหรับ (int i = indexStart; i <= indexEnd; i++)
-
ถ้า (i == หน้าปัจจุบัน)
-
sb.ผนวก(" " + (i+1) + " ");
-
อย่างอื่นถ้า (i == 0)//หากหน้าปัจจุบันเป็นหน้าที่ 2 จะต้องดำเนินการแยกกัน
-
sb.Append(" <a href='" + name + ".html'>" + (i + 1) + "</a> ");
-
อื่น
-
sb.Append(" <a href='" + ชื่อ + "-" + 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) + "/" + (ผลรวมหน้า + 1));
sb.Append(" Go to:<select name="qq" id="ddlIndexList" onchange="javascript:location.href=this.value;">" );
string AbsolutePaths = HttpContext.Current.Request.Url.ToString();//รับ url
AbsolutePaths = AbsolutePaths.Substring(0, AbsolutePaths.LastIndexOf("/"))+"\" + path;//รับ 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.ผนวก("</select>");
sb.Append("<script type="text/javascript" language="javascript">");
ถ้า (หน้าปัจจุบัน == 0)//หน้าแรก
-
string d = "document.getElementById("ddlIndexList").value = "" + ชื่อ + ".html";";
sb.Append("document.getElementById("ddlIndexList").value = ""+name+".html";");
-
อื่น
-
string k = " document.getElementById("ddlIndexList").value = "" + ชื่อ + "-" + currentPage + ".html";";
sb.Append(" document.getElementById("ddlIndexList").value = "" + name+"-"+currentPage + ".html";");
-
sb.ผนวก("</script>");
กลับ sb.ToString();
#ภูมิภาคสุดท้าย