| 
                         数据类代码: 
复制代码 代码如下: 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"},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;         }
           } }
                          (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |