• jquery -----简单分页


    <!DOCTYPE html>
    <head>
        <title>无标题页</title>
        <script src="javsscript/jquery-1.7.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            var page = 1;
            var pagesize = 5;
            var s_name;
            $(function() {
                //------查询
            $("#search").click(function() {
                    page = 1;
                    s_name = $("#txtSearch").val();
                    getAjaxData(s_name, page, pagesize);
                });
            });
            //------封装分页方法开始
            function getAjaxData(strwhere, page, pagesize) {
                $.ajax({
                    type: "get",
                    url: "demo7.ashx",
                    datatype: "json",
                    contentType: "application/json;charset=utf-8",
                    //data:{ page: page, pagesize: pagesize,name: strwhere }, 或:
                    data: "name=" + strwhere + "&page=" + page + "&pagesize=" + pagesize,
                    success: function(data) {
    
                        var htmlStr = "";
                        htmlStr += "<table>"
                        htmlStr += "<thead>"
                        htmlStr += "<tr><td>编号</td><td>姓名</td><td>年龄</td><td>备注</td></tr>"
                        htmlStr += "</thead>";
                        htmlStr += "<tbody>"
                        for (var i = 0; i < data.userlist.length; i++) {
                            htmlStr += "<tr>";
                            htmlStr += "<td>" + data.userlist[i].userid + "</td>"
                                              + "<td>" + data.userlist[i].username + "</td>"
                                              + "<td>" + data.userlist[i].userage + "</td>"
                                              + "<td>" + data.userlist[i].userdesc + "</td>"
    
                            htmlStr += "</tr>";
                        }
                        //如果查询出得结果总数小于pagesize则用空行填充
                        if (data.userlist.length < pagesize) {
                            for (var i = 0; i < pagesize - data.userlist.length; i++)
                             {
                                htmlStr += "<tr><td style='height:28px;'></td></tr>";
                             }
                        }
                        htmlStr += "</tbody>";
                        htmlStr += "<tfoot>";
                        htmlStr += "<tr>";
                        htmlStr += "<td colspan='4'>";
                        htmlStr += "<span>总:" + data.totalcount + "条 当前:" + page + "/<span id='count'>" + (data.totalcount % pagesize == 0 ? parseInt(data.totalcount / pagesize) : parseInt(data.totalcount / pagesize + 1)) + "</span>页" + "</span>";
                        htmlStr += "<a href='javascript:GoToFirstPage()'id='aFirstPage' >首    页</a>";
                        htmlStr += "<a href='javascript:GoToPrePage()'  id='aPrePage' >上一页</a>";
                        htmlStr += "<a href='javascript:GoToNextPage()' id='aNextPage'>下一页</a>";
                        htmlStr += "<a href='javascript:GoToEndPage()'  id='aEndPage' >尾    页</a>";
                        htmlStr += "<input type='text' /><input type='button'  value='跳转' onclick='GoToAppointPage(this)' /> ";
                        htmlStr += "</td>";
                        htmlStr += "</tr>";
                        htmlStr += "</tfoot>";
                        htmlStr += "</table>";
                        $("#userlist").html(htmlStr);
    
                    },
                    error: function(error) {
                        alert(error);
                    }
                });
            }
            //--------封装分页方法结束
            //首页
            function GoToFirstPage() {
                page = 1;
                getAjaxData(s_name, page, pagesize);
            }
            //前一页
            function GoToPrePage() {
                
                page = page-1<= 0 ? 1 : page-1;
                getAjaxData(s_name, page, pagesize);
              
            }
            //后一页
            function GoToNextPage() {
                if (page + 1 <= parseInt($("#count").text())) {
                    page=page+1;
                }
                getAjaxData(s_name, page, pagesize);
            }
            //尾页
            function GoToEndPage() {
                page = parseInt($("#count").text());
                getAjaxData(s_name, page, pagesize);
            }
            //跳转
            function GoToAppointPage(e) {
                var page_goto = $(e).prev().val();
                if (isNaN(page_goto)) {
                    alert("请输入数字!");
                }
                else {
                    var tempPageIndex = page;
                    page = parseInt($(e).prev().val());
                    if (page < 0 || page >parseInt($("#count").text())) {
                        page = tempPageIndex;
                        alert("请输入有效的页面范围!");
                    }
                    else {
                        getAjaxData(s_name, page_goto, pagesize);
                    }
                }
            }
    
        </script>
        <!--简单样式 -->
     <style type="text/css">
       #userlist{border:1px solid gray; width:500px; height:215px;}
       #userlist table{border-collapse: collapse; width:100%; height:auto;background:CFCFCF;}
       #userlist table thead{ margin:0; padding:0; background-color:#CCCCCC;text-align:center; height:30px; line-height:30px;}
       #userlist tbody tr{ height:28px; line-height:28px; text-align:center; }
       #userlist tfoot tr{ height:30px; background:#CCCCCC;line-height:30px; text-align:center;}
       #userlist tfoot tr td a{ text-decoration:none; margin:4px;}
       #userlist tfoot tr td a:hover{ text-decoration:underline; color:Red;}
       #userlist tfoot tr td input{ height:20px; width:40px; margin:4px;}
       #userlist tfoot tr td input[type=text]{ background:white; border:0;}
       #userlist tfoot tr td input[type=button]{ border:1px dashed; position:relative;top:0px;top:2px; cursor:pointer;}
     </style>
    </head>
    <body>
      
        用户姓名:<input type="text" name="name" id="txtSearch" /><input type="button" id="search"
            value="查询" /><br />
        <div id="userlist">
        </div>
        
    </body>
    </html>
    
    ---------------后台代码:
    
    <%@ WebHandler Language="C#" Class="demo7" %>
    
    using System;
    using System.Web;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Data;
    using System.Collections.Generic;
    using System.Web.Script.Serialization;
    public class demo7 : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) {
            //context.Response.ContentType = "text/plain";
            context.Response.ContentType = "application/json";
            string username = context.Request.Params["name"].ToString();
            //string username = context.Request.QueryString["name"].ToString();
            int page = Convert.ToInt32(context.Request.Params["page"].ToString());
            int pagesize = Convert.ToInt32(context.Request.Params["pagesize"].ToString());
            //链接数据库
            //string strcon ="server=WIN-B36NXMUXT0KMSSQL;user ID=user;password=user;database=test";
            //或读取webconfing
            string strcon = ConfigurationManager.AppSettings["pubsConnectionString"].ToString();
            SqlConnection con = new SqlConnection(strcon);
            con.Open();
            SqlCommand com = new SqlCommand();
            com.Connection = con;
            com.CommandType = CommandType.StoredProcedure;
            com.CommandText = "proc_searchuser";
    
            SqlParameter[] par = new SqlParameter[] { 
                
                   new SqlParameter("@username",SqlDbType.VarChar,12),
                   new SqlParameter("@page",SqlDbType.Int),
                   new SqlParameter("@pagesize",SqlDbType.Int),
                   new SqlParameter("@totalcount",SqlDbType.Int)
                };
    
            par[0].Value = username;
            par[1].Value = page;
            par[2].Value = pagesize;
            par[3].Direction = ParameterDirection.Output;
    
            com.Parameters.AddRange(par);
            //int res = com.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds);
            int totalcount = Convert.ToInt32(par[3].Value.ToString());
            com.Dispose();
            con.Close();
            string json = ObjectToJSON(DataTableToList(ds.Tables[0]));
            string resultjson = "{"totalcount":"+totalcount+","userlist":"+json+"}";
            context.Response.Write(resultjson);
        }
        
        //datatable转换为list
        public static List<Dictionary<string, object>> DataTableToList(DataTable dt)
        { 
            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
            foreach (DataRow dr in dt.Rows)
            { 
                Dictionary<string, object> dic = new Dictionary<string, object>();
                foreach (DataColumn dc in dt.Columns) 
                { 
                    dic.Add(dc.ColumnName, dr[dc.ColumnName]);
                }
                list.Add(dic);
            }
            return list;
        }
        //系列化json
          public static string ObjectToJSON(object obj){
              JavaScriptSerializer jss =new JavaScriptSerializer();
              try 
              {
                  return jss.Serialize(obj);
              }
              catch(Exception ex)
              { 
                  throw new Exception("JSONHelper.ObjectToJSON(): "+ ex.Message); 
              }
          }
        
        
        
        
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    
    
    //----------分页存储过程----------------------
    create proc [dbo].[proc_searchuser] ( @username varchar(12), @page int=1, @pagesize int=10, @totalcount int output ) as declare @totalsql nvarchar(200) declare @sql varchar(4000) if(ISNULL(@username,'')
    <>'') begin set @totalsql='select @totalcount=COUNT(*) from userinfo where username like ''%'+@username+'%''' end else begin set @totalsql='select @totalcount=COUNT(*) from userinfo' end exec sp_executesql @totalsql,N'@totalcount int output',@totalcount output -------------分页-------------- if @page<=0 set @page=1 set @sql='select * from (select ROW_NUMBER() over(order by userid)rowNO,* from userinfo where username like ''%'+@username+'%'')U where U.rowNo BETWEEN '+str((@page-1)*@pagesize+1)+' AND ' +str(@page*@pagesize) exec (@sql)
  • 相关阅读:
    《CLR via C#》读书笔记 之 基元类型、引用类型和值类型 明
    《CLR via C#》读书笔记 之 类型和成员基础 明
    《CLR via C#》读书笔记 之 方法 明
    设计模式基础(一):UML中关系图解 明
    【转载】c#类的成员初始化顺序 明
    《CLR via C#》读书笔记 之 接口 明
    《CLR via C#》读书笔记 之 事件 明
    《CLR via C#》读书笔记 之 参数 明
    三塔DP——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3554
    二分求幂——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549
  • 原文地址:https://www.cnblogs.com/zcttxs/p/3246204.html
Copyright © 2020-2023  润新知