English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هذا المثال يشارك لكم رمز التصفح في MVC، للاستفادة منه، والمحتوى التفصيلي كالتالي
using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Web; using System.Text; using System.Web.Mvc; using System.Web.Routing; using System.Data.Objects.DataClasses; namespace System.Web.Mvc { public static class PagerHelper { /// <summary> /// التصفية /// </summary> /// <param name="helper"></param> /// <param name="id">معرف التصفية</param> /// <param name="currentPageIndex">الصفحة الحالية</param> /// <param name="pageSize">حجم الصفحة</param> /// <param name="recordCount">عدد السجلات</param> /// <param name="htmlAttributes">属性标签分页头</param> /// <param name="className">نمط التصفية</param> /// <param name="mode">نمط التصفية</param> /// <returns></returns> public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, object htmlAttributes, string className, PageMode mode) { TagBuilder builder = new TagBuilder("table"); builder.IdAttributeDotReplacement = "_"; builder.GenerateId(id); builder.AddCssClass(className); builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); builder.InnerHtml = GetNormalPage(currentPageIndex, pageSize, recordCount, mode); return builder.ToString(); } /// <summary> /// التصفية /// </summary> /// <param name="helper"></param> /// <param name="id">معرف التصفية</param> /// <param name="currentPageIndex">الصفحة الحالية</param> /// <param name="pageSize">حجم الصفحة</param> /// <param name="recordCount">عدد السجلات</param> /// <param name="className">نمط التصفية</param> /// <returns></returns> public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, string className) { return Pager(helper, id, currentPageIndex, pageSize, recordCount, null, className, PageMode.Normal); } /// <summary> /// التصفية /// </summary> /// <param name="helper"></param> /// <param name="id">معرف التصفية</param> /// <param name="currentPageIndex">الصفحة الحالية</param> /// <param name="pageSize">حجم الصفحة</param> /// <param name="recordCount">عدد السجلات</param> /// <returns></returns> public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount) { return Pager(helper, id, currentPageIndex, pageSize, recordCount, null); } /// <summary> /// التصفية /// </summary> /// <param name="helper"></param> /// <param name="id">معرف التصفية</param> /// <param name="currentPageIndex">الصفحة الحالية</param> /// <param name="pageSize">حجم الصفحة</param> /// <param name="recordCount">عدد السجلات</param> /// <param name="mode">نمط التصفية</param> /// <returns></returns> public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, PageMode mode) { return Pager(helper, id, currentPageIndex, pageSize, recordCount, null, mode); } /// <summary> /// التصفية /// </summary> /// <param name="helper"></param> /// <param name="id">معرف التصفية</param> /// <param name="currentPageIndex">الصفحة الحالية</param> /// <param name="pageSize">حجم الصفحة</param> /// <param name="recordCount">عدد السجلات</param> /// <param name="className">نمط التصفية</param> /// <param name="mode">نمط التصفية</param> /// <returns></returns> public static string Pager(this HtmlHelper helper, string id, int currentPageIndex, int pageSize, int recordCount, string className, PageMode mode) { return Pager(helper, id, currentPageIndex, pageSize, recordCount, null, className, mode); } /// <summary> /// الحصول على التصفية العادية /// </summary> /// <param name="currentPageIndex"></param> /// <param name="pageSize"></param> /// <param name="recordCount"></param> /// <returns></returns> private static string GetNormalPage(int currentPageIndex, int pageSize, int recordCount, PageMode mode) { int pageCount = (recordCount % pageSize == 0 ? recordCount / pageSize : recordCount / pageSize + 1); StringBuilder url = new StringBuilder(); url.Append(HttpContext.Current.Request.Url.AbsolutePath + "?page={0}"); NameValueCollection collection = HttpContext.Current.Request.QueryString; string[] keys = collection.AllKeys; for (int i = 0; i < keys.Length; i++) { if (keys[i].ToLower() != "page") url.AppendFormat("&{0}={1}", keys[i], collection[keys[i]]); } StringBuilder sb = new StringBuilder(); sb.Append("<tr><td>"); sb.AppendFormat("المجموع{0}سجل،{1}صفحة،الصفحة الحالية{2} ", recordCount, pageCount, currentPageIndex); if (currentPageIndex == 1) sb.Append("<span>البداية</span> "); else { string url1 = string.Format(url.ToString(), 1); sb.AppendFormat("<span><a href={0}>البداية</a></span> ", url1); } if (currentPageIndex > 1) { string url1 = string.Format(url.ToString(), currentPageIndex - 1); sb.AppendFormat("<span><a href={0}>الصفحة السابقة</a></span> ", url1); } else sb.Append("<span>الصفحة السابقة</span> "); if (mode == PageMode.Numeric) sb.Append(GetNumericPage(currentPageIndex, pageSize, recordCount, pageCount, url.ToString())); إذا كان currentPageIndex < pageCount { string url1 = string.Format(url.ToString(), currentPageIndex + 1); sb.AppendFormat("<span><a href={0}>الصفحة التالية</a></span> ", url1); } else sb.Append("<span>الصفحة التالية</span> "); إذا كان currentPageIndex == pageCount sb.Append("<span>الصفحة الأخيرة</span> "); else { string url1 = string.Format(url.ToString(), pageCount); sb.AppendFormat("<span><a href={0}>الصفحة الأخيرة</a></span> ", url1); } return sb.ToString(); } /// <summary> /// تحصل على الصفحات الرقمية /// </summary> /// <param name="currentPageIndex"></param> /// <param name="pageSize"></param> /// <param name="recordCount"></param> /// <param name="pageCount"></param> /// <param name="url"></param> /// <returns></returns> private static string GetNumericPage(int currentPageIndex, int pageSize, int recordCount, int pageCount, string url) { int k = currentPageIndex / 10; int m = currentPageIndex % 10; StringBuilder sb = new StringBuilder(); إذا كان currentPageIndex / 10 == pageCount / 10 { إذا كان m == 0 { k--; m = 10; } else m = pageCount % 10; } else m = 10; لـ (مجرد i = k * 10 + 1; i <= k * 10 + m++; i++) { if (i == currentPageIndex)} sb.AppendFormat("<span><font color=red><b>{0}</b></font></span> ", i); else { string url1 = string.Format(url.ToString(), i); sb.AppendFormat("<span><a href={0}>{1}</a></span> ", url1, i); } } return sb.ToString(); } } /// <summary> /// نمط التصفية /// </summary> public enum PageMode { /// <summary> /// نمط التصفية العادي /// </summary> Normal, /// <summary> /// عادةً صفحة التصفية مع صفحة التصفية الرقمية /// </summary> Numeric } }
كود HTML
<div id="pageNav" class="pageinator"> @Html.ShowPageNavigate((int)ViewData["pageindex"], (int)ViewBag.pageSize, (int)ViewBag.totalCount); </div>
مستند
shopEntities shop = new shopEntities(); public ActionResult Index() { //IQueryable<tbl_order> order = (from a in shop.tbl_order select a).OrderBy(a=>a.id).Skip(10).Take(10); //ViewData["order"] = order; //return View(); int pageIndex = Request["pageIndex"] == null ? 1 : int.Parse(Request["pageIndex"]); int pageSize = Request["pageSize"] == null ? 10 : int.Parse(Request["pageSize"]); int totalCount = 0; //تعليمات نقل بيانات الصفحة للمستخدم ViewData["pageIndex"] = pageIndex; //ViewData["pageSize"] = pageSize; ViewBag.pageSize = pageSize; //Total number totalCount = shop.tbl_order.Count(); ViewBag.totalCount = totalCount; //Send the current page data to the front end. //ViewData.Model = db.UserInfo.ToList(); //List<tbl_order> pp = shop.tbl_order // .OrderBy(u => u.id) // .Skip((pageIndex - 1) * pageSize) // .Take(pageSize).ToList(); IQueryable<tbl_order> pp = shop.tbl_order .OrderBy(u => u.id) .Skip((pageIndex - 1) * pageSize) .Take(pageSize); return View(pp); }
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في تعلم جديد، ونأمل أيضًا أن تشجعوا دليل呐喊 لتعلم المزيد.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع المالك الأصلي بحقوق الطبع والنشر، ويتم جمع المحتوى من قبل المستخدمين عبر الإنترنت بتحميله بشكل مستقل، ويستخدم هذا الموقع فقط كوسيلة عرض، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا كنت قد وجدت محتوى مشكوك فيه فيما يتعلق بالحقوق المتعلقة بالملكية الفكرية، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (الرجاء استبدال #بـ @ عند إرسال البريد الإلكتروني) للإبلاغ، وقدم الأدلة ذات الصلة، وإذا تم التحقق من ذلك، سيتم حذف المحتوى المشكوك فيه فورًا.