zoukankan      html  css  js  c++  java
  • 无刷新分页

    数据类代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections;
    using System.Reflection;
    
    namespace DAL
    {
        public  class UserManageClass
        {
            /// <summary>
            /// 取得总页数
            /// </summary>
            /// <returns>总页数</returns>
            public int GetPageCount()
            {
                int counts;
                string SqlStr = "select count(0) from [User]";
                counts = new SQLHelper().Content(SqlStr, CommandType.Text);
                return counts;
            }
            /// <summary>
            /// 取出每一页的内容
            /// </summary>
            /// <param name="SatrPage">开始页数</param>
            /// <param name="EndPage">结束页数</param>
            /// <returns>每一页的内容</returns>
            public DataTable GetPageDate(string SatrPage, string EndPage)
            {
                DataTable dt;
                string SqlStr = @"select * from 
                (select *, ROW_NUMBER() over(order by id)as no_ from [User])aa 
                where aa.no_ between '"+SatrPage+"' and '"+EndPage+"'";
                dt = new SQLHelper().ExecuteQuery(SqlStr, CommandType.Text);
                return dt;
            }
    
            /// <summary>
            /// 将一个DataTable转换成列表
            /// </summary>
            /// <typeparam name="T">实体对象的类型</typeparam>
            /// <param name="dt">要转换的DataTable</param>
            /// <returns></returns>
            public  List<T> DataTableToEntityList<T>(DataTable dt)
            {
                List<T> entiyList = new List<T>();
    
                Type entityType = typeof(T);
                PropertyInfo[] entityProperties = entityType.GetProperties();
    
                foreach (DataRow row in dt.Rows)
                {
                    T entity = Activator.CreateInstance<T>();
    
                    foreach (PropertyInfo propInfo in entityProperties)
                    {
                        if (dt.Columns.Contains(propInfo.Name))
                        {
                            if (!row.IsNull(propInfo.Name))
                            {
                                propInfo.SetValue(entity, row[propInfo.Name], null);
                            }
                        }
                    }
    
                    entiyList.Add(entity);
                }
    
                return entiyList;
            }
    
    
        }
    }

    PageService.ashx.cs一般处理程序代码:

    using System;
    using System.Collections;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    using DAL;
    using System.Web.Extensions;
    using System.Web.Script.Serialization;
    using Model;
    using System.Web.UI.MobileControls;
    using System.Collections.Generic;
    
    namespace LandingSystem
    {
        /// <summary>
        /// $codebehindclassname$ 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class PageService : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                string action = context.Request["action"];
                if (action == "GetPageCount")
                {
                    int counts = new UserManageClass().GetPageCount();
                    int page = counts / 3;
                    if (counts % 3 != 0)
                    {
                        page++;
                    }
                    context.Response.Write(page);
                }
                else if (action == "GetPageData")
                {
                    int pageNo = Convert.ToInt32(context.Request["PageNo"]);
                    string SatrPage = ((pageNo - 1) * 3 + 1).ToString();
                    string EndPage = (pageNo * 3).ToString(); 
                    DataTable dt= new UserManageClass().GetPageDate(SatrPage, EndPage);
                    IList<RegisterModel> data = ModelConvertHelper<RegisterModel>.ConvertToModel(dt);
                   // IList<RegisterModel> data = new UserManageClass().DataTableToEntityList<RegisterModel>(dt);
                    var p1 = data.Select(c => new { c.Name,c.Phone});
                    #region 废物代码
                    // var p1 = data.Select( c => new { c.Name,c.Phone});
                    //var p1=data.Select(dr=>new {dr["Name"].ToString(),dr["Phone"].ToString()});
    
    
                    //var T_model = new List<RegisterModel>();                
                    //var p3 = T_model.Select(c => new { c.Name, c.Phone });
    
                    //var p2=data.Select(c=>new {})
                    #endregion
                    JavaScriptSerializer jss = new JavaScriptSerializer();
                    context.Response.Write(jss.Serialize(p1));
                }
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

    aspx页面代码:

    <head runat="server">
        <title>无标题页</title>
    
        <script src="JS/jquery-latest.js" type="text/javascript"></script>
        <script type="text/javascript"> 
    $(function(){ 
    //----------------------------------------------------------- 
    function getPageData(pageNo){ //取得某页数据的方法 
    $.post("PageService.ashx",{"action":"GetPageData","PageNo":pageNo},function(data,status){ 
    if(status=="success"){ 
    $("#Comment").empty(); 
    var comments=$.parseJSON(data); //反序列化json数据。 
    for(var i=0;i<comments.length;i++){ 
    var row=comments[i]; 
    var li= $("<li>"+row.Name+" : "+row.Phone+"</li>"); 
    $("#Comment").append(li); //每取出一条数据就创建一个li并append到Comment/ul内。 
    } 
    } 
    }); 
    } 
    //------------------------------------------------------------------- 
    getPageData(1); //首次进入页面,看到的是第一页的数据 
    //----------------------------------------------------------------/ 
    //取得所有的页数并且初始化分页按钮 
    $.post("PageService.ashx",{"action":"GetPageCount"},function(data,status){ 
    if(status=="success"){ 
    var tr1=$("<tr></tr>"); 
    var pageNo=parseInt(data); 
    for(var i=1;i<=pageNo;i++){ 
    var td=$("<td><a href=''>"+i+"</a></td>"); 
    tr1.append(td); 
    } 
    $("#pageNo").append(tr1); 
    $("#pageNo a").click(function(e){ //页码创建后,就为每一个页码监听一个click事件。 
    e.preventDefault(); //取消a的默认跳转行为 
    getPageData($(this).html()); //点击后就去执行取页数据的操作。 
    }); 
    } 
    }); 
    //---------------------------------------------------------------------------- 
    }); 
    </script> 
    </head>
    <body>
    <table>
        <tr>
            <td>
            <ul id="Comment"></ul>
            </td>
        </tr>
    </table>
        <br />
        页数:
        <table id="pageNo"></table>
    </body>
    </html>

    ModelConvertHelper.cs(将datatable转换为list通用类)代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using System.Data;
    using System.Reflection;
    
    namespace DAL
    {
        public class ModelConvertHelper<T> where T : new ()
        {
            public static IList<T> ConvertToModel(DataTable dt)
            {
             IList<T> ts = new List<T>();
            Type type=typeof(T);
            string tempName = "";
            foreach (DataRow dr in dt.Rows)
            {
                T t = new T();
                // 获得此模型的公共属性
                PropertyInfo[] propertys = t.GetType().GetProperties();
                foreach (PropertyInfo pi in propertys)
                {
                    tempName = pi.Name;
                    // 检查DataTable是否包含此列
                    if (dt.Columns.Contains(tempName))
                    {
                        // 判断此属性是否有Setter
                        if (!pi.CanRead) continue;
                        object value = dr[tempName];
                        if (value != DBNull.Value)
                            if (pi.PropertyType == typeof(int))
                            {
                                pi.SetValue(t, Convert.ToInt32(value), null);
                            }
                            else if (pi.PropertyType == typeof(string))
                            {
                                pi.SetValue(t, value.ToString(), null);
                            }
                            //pi.SetValue(t, value, null);
                    }
                }
                ts.Add(t);
            }
            return ts;
            }
                
        
        }
    }
  • 相关阅读:
    Two strings CodeForces
    Dasha and Photos CodeForces
    Largest Beautiful Number CodeForces
    Timetable CodeForces
    Financiers Game CodeForces
    AC日记——整理药名 openjudge 1.7 15
    AC日记——大小写字母互换 openjudge 1.7 14
    AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13
    AC日记——加密的病历单 openjudge 1.7 12
    AC日记——潜伏着 openjudge 1.7 11
  • 原文地址:https://www.cnblogs.com/juexin/p/2967032.html
Copyright © 2011-2022 走看看