- أردت مؤخرًا أن أجعل موقع الويب ثابتًا، لذلك كتبت بعض الطرق بنفسي ونشرتها للمناقشة مع الجميع.
/// <الملخص> /// فئة الوظيفة الثابتة لموقع الويب /// الملخص> الفئة العامة CreateHtml { /// <الملخص> /// قراءة محتوى القالب /// الملخص> /// المسار النسبي للقالب /// محتوى القالب، إرجاع فشل القراءة "" سلسلة عامة 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 } /// <الملخص> /// إنشاء ملفات بناءً على المسار المطلق واسم الملف للملف الذي تم إنشاؤه /// الملخص> /// المسار المطلق للملف /// إنشاء اسم الملف /// اكتب محتوى الملف /// إنشاء حالة الملف، 1: نجاح 0: فشل 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 } /// <الملخص> /// اقرأ في الصفحات حسب كل المحتوى المقروء، وافصل كل صفحة بـ "|" /// الملخص> /// المحتوى /// شعار الترحيل /// السلسلة بعد ترقيم الصفحات للمحتوى، ويتم فصل كل صفحة بـ "|" السلسلة العامة 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 } /// <الملخص> /// إنشاء علامات الترحيل المقابلة للمحتوى، الصفحة الرئيسية، الصفحة السابقة، رقم الصفحة، الصفحة التالية، الصفحة الأخيرة (لجزء من المحتوى) /// الملخص> /// فهرس الصفحة الحالية /// إجمالي عدد الصفحات /// اسم الملف (اسم الملف فقط بدون اللاحقة) /// علامة الترحيل المقابلة التي تم إنشاؤها بناءً على المحتوى السلسلة العامة Html_Pager_Sign (int currPageIndex، int pageCount، string noteName) { #منطقة string allSeprNote = "
$firstpage$
$uppage$
$pagenumber$ td>
$drownpage$
$lastpage$
"; سلسلة seprTempStr = ""; for (int i = 1; i <= pageCount; i++)// حلقة لإنشاء أرقام الصفحات لكل صفحة (هذه الحلقة تنشئ أرقام الصفحات فقط) { كثافة العمليات ن = ط - 1؛ //إذا كانت الصفحة الأولى إذا (ط == 1) { seprTempStr += "" + i+" "+ ""; } آخر { seprTempStr += "" + i+" " + ""; } } 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$", "الصفحة الرئيسية");// استبدل الصفحة الرئيسية بالروابط allSeprNote = allSeprNote.Replace("$uppage$", "الصفحة السابقة");//استبدل الصفحة السابقة لأنها الصفحة الثانية الرابط هي نفس الصفحة الرئيسية } آخر // إذا كانت صفحة أخرى { int temppageindex = currPageIndex - 1; // رقم الصفحة السابقة allSeprNote = allSeprNote.Replace("$firstpage$", "الصفحة الرئيسية");// استبدال الصفحة الرئيسية allSeprNote = allSeprNote.Replace("$uppage$", "الصفحة السابقة");// استبدال الصفحة السابقة } // إنشاء الصفحة الأخيرة والصفحة التالية if (currPageIndex == pageCount - 1)// إذا كانت الصفحة الحالية هي الصفحة الأخيرة، فإن الصفحة التالية والصفحة الأخيرة لهما نفس الوظائف وليس لهما روابط. { allSeprNote = allSeprNote.Replace("$lastpage$", "الصفحة الأخيرة");//استبدال الصفحة الأخيرة allSeprNote = allSeprNote.Replace("$drownpage$", "الصفحة التالية");// استبدل الصفحة التالية } آخر // إذا كانت صفحة أخرى { int temppageindex = currPageIndex+1;// رقم الصفحة التالية allSeprNote=allSeprNote.Replace("$lastpage$", "الصفحة الأخيرة");//إنشاء ذيل صفحة allSeprNote=allSeprNote.Replace("$drownpage$", "الصفحة التالية"); } إرجاع الكلSeprNote; #endregion } /// <الملخص> /// إنشاء علامات الترحيل لصفحات القائمة /// الملخص> /// إجمالي عدد الصفحات /// فهرس الصفحة الحالي (يبدأ من الصفر) /// عدد عناصر المحتوى المعروضة في كل صفحة /// اسم الملف (بدون لاحقة) /// علامة الترحيل سلسلة عامة Html_Pager_Multi(عدد الصفحات إجمالي، عدد الصفحات الحالية، حجم حجم الصفحات، اسم السلسلة، مسار السلسلة) { #منطقة pageTotal = pageTotal - 1; StringBuilder sb = new StringBuilder(); // إنشاء روابط للصفحة الرئيسية والصفحة السابقة if (currentPage == 0)// إذا كانت الصفحة الحالية هي الصفحة الأولى { sb.Append(" الصفحة الرئيسية الصفحة السابقة "); } else if (currentPage == 1)//إذا كانت الصفحة الحالية هي الصفحة الثانية { sb.Append(" الصفحة الرئيسية"); sb.Append(" الصفحة السابقة "); } آخر { sb.Append(" الصفحة الرئيسية"); sb.Append(" الصفحة السابقة "); } 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(" " + (i + 1) + " "); } آخر { sb.Append(" " + (i + 1) + " "); } } // إنشاء الصفحة التالية والصفحة الأخيرة if (currentPage == pageTotal)// إذا كانت الصفحة الحالية هي الصفحة الأخيرة { sb.Append(" الصفحة التالية "); sb.Append(" الصفحة الأخيرة "); } آخر { sb.Append(" الصفحة التالية "); sb.Append(" الصفحة الأخيرة"); } sb.Append(" " + (الصفحة الحالية + 1) + "/" + (pageTotal + 1)); sb.Append(" انتقل إلى:"); sb.Append(""); إرجاع sb.ToString(); #endregion