MVC Page Bar extension method

Source: Internet
Author: User

Using System;
Using System.Collections.Generic;
Using System.Reflection;
Using System.Text;
Using SYSTEM.WEB.MVC;

Namespace SYSTEM.WEB.MVC
{
#region MVC Page Bar extension method Htmlpaginationbar

<summary>
MVC Page Bar extension method
</summary>
public static Class Htmlpaginationbar
{
<summary>
Raw Component Page bar (page call @Html. Paginationbar)
</summary>
<param name= "helper" ></param>
<param name= "bar" > page Bar builder </param>
<returns></returns>
public static mvchtmlstring Paginationbar (this htmlhelper helper, Paginationbar bar)
{
return new Mvchtmlstring (bar. Genpaginationhtml ());
}
}

#endregion

#region Paging Entity Pagebar
<summary>
Paging parameter class
</summary>
public class Pagebar
{
<summary>
Total pages
</summary>
public int RecordCount {get; set;}
<summary>
Current page Index
</summary>
public int PageIndex {get; set;}

<summary>
Current page Index
</summary>
public int PageSize {get; set;}
}
#endregion

#region Pager Bar Builder Paginationbar

public class Paginationbar
{
<summary>
Paging Navigation bar Builder
</summary>
<param name= "url" > page address template, where the changed page index section is replaced with {0} </param>
<param name= "Pagebar" > Pagination entity </param
Public paginationbar (String URL, Pagebar pagebar, object keyvalues = null)
{
M_url = URL;
M_pagecount = pagebar.recordcount% Pagebar.pagesize = = 0? Pagebar.recordcount/pagebar.pagesize: (Int32) (pagebar.recordcount/pagebar.pagesize) + 1;
M_pageindex = Pagebar.pageindex;
M_recordcount = Pagebar.recordcount;
M_pagesize = pagebar.pagesize;
M_keyvalues = KeyValues;
}

Private Int32 m_pageindex = 0;
Private Int32 m_pagecount = 0;
Private Int32 m_recordcount = 0;
Private Int32 m_pagesize = 0;
Private String m_url = String.Empty;
Private object m_keyvalues = null;
Private StringBuilder m_html = new StringBuilder ();
Private StringBuilder M_js = new StringBuilder ();
Private StringBuilder M_param = new StringBuilder ();

<summary>
Raw Ingredients page m_html and JS code
</summary>
<returns></returns>
Public String genpaginationhtml ()
{
StringBuilder m_html = new StringBuilder ();

JS parameter replication
M_js. Appendline ("<script> function pagination () {");
M_js. Append (Genjs ());
M_js. Appendline ("} pagination ();</script>");

Html
M_html. Append ("<div id= ' pagination ' >");
M_html. Append (Genfirst ());
M_html. Append (Genpre ());
M_html. Append (Gennext ());
M_html. Append (Genlast ());
M_html. Append (Genjump ());
M_html. Append (Genlabel ());
M_html. Append ("</div>");

Return m_html. ToString () + M_js. ToString ();
}

<summary>
Get JS Code
</summary>
<returns></returns>
Public String Genjs ()
{
if (m_keyvalues = = null)
return String.Empty;

StringBuilder js = new StringBuilder ();

Cyclic parameters
foreach (Var p in M_keyvalues.gettype (). GetProperties ())
{
Object val = p.getvalue (m_keyvalues, NULL);
Js. Appendline (String.Format ("document.getElementById (' {0} '). Value={1}", P.name, Val));
M_param. Append (String.Format ("&{0}={1}", P.name, Val));
}

Return JS. ToString ();
}

<summary>
Home
</summary>
Private String Genfirst ()
{
Return String.Format ("<a class= ' first ' href= ' {0}?pageindex={1}{2} ' > Home </a>", M_url, 0, M_param);
}

<summary>
Last
</summary>
Private String Genlast ()
{
Return String.Format ("<a class= ' last ' href= ' {0}?pageindex={1}{2} ' > End </a>", M_url, M_pagecount, M_param);
}

<summary>
Generate previous Page
</summary>
Private String Genpre ()
{
Return String.Format ("<a class= ' prev ' href= ' {0}?pageindex={1}{2} ' > Previous page </a>", M_url, (m_pageindex! = 1? m_ PageIndex-1:1), M_param);
}

<summary>
Generate next Page
</summary>
private String Gennext ()
{
Return String.Format ("<a class= ' next ' href= ' {0}?pageindex={1}{2} ' > Next </a>", M_url, (M_pageindex = = M_ PageCount? M_pageindex:m_pagecount + 1), m_param);
}

<summary>
Generated
</summary>
Private String Genjump ()
{
StringBuilder m_jump = new StringBuilder ();
for (Int32 i = 1; I <= m_pagecount; i++)
{
M_jump. Append (String.Format ("<option value={0}>{0}</option>", i));
}
Return String.Format ("<select id= ' pageIndex ' name= ' pageIndex ' onchange= ' javacript:window.location.href={1}?1=1{ 2} '/>{0}<select> ', M_jump, M_url, M_param);
}

<summary>
Generated
</summary>
Private String Genlabel ()
{
Return String.Format ({0} page, total {1} pages, {2} per page, total {3} strips, M_pageindex, M_pagecount, M_pagesize, M_recordcount);
}
}

#endregion
}

MVC Page Bar extension method

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.