现在的位置: 首页 > 综合 > 正文

C#JQuery学习(一)列表的排序+分页

2013年07月29日 ⁄ 综合 ⁄ 共 5944字 ⁄ 字号 评论关闭

因为要帮妹妹做公司网站,看了网站空间带.netFramework4.0的价格好贵,只好选3.5的

3.5的代码没4.0强大,好喜欢4.0的MVC!可惜啊!

 

以下的代码在3.5下运行通过。

 

1.首先到官方下载分页控件:http://plugins.jquery.com/project/pagination

jquery.pagination.js

 

 

2.EasyFunction.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EasyFunction.aspx.cs" Inherits="EasyFunction" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <link href="jqueryPager/pagination.css" rel="stylesheet" type="text/css" />
    <%--<script src="jqueryPager/jquery-1.2.6.pack.js" type="text/javascript"></script>--%>
    <script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
    <script src="jqueryPager/jquery.pagination.js" type="text/javascript"></script>
    <script type="text/javascript">
        var orderby="";
        $().ready(function() {
             InitData(0);
            $("#pageTheme").change(function(){
                $("#Pagination").attr('class',$(this).val());
            });    
        });
        function pageselectCallback(page_id, jq) {
            InitData(page_id);
        }
        function InitData(pageindx)
        {
            var tbody = "";
            $.ajax({
               type: "POST",//用POST方式传输
               dataType:"json",//数据格式:JSON
               url:'Handler.ashx',//目标地址
               data:"pageindx="+(pageindx+1)+"&orderby="+orderby,
               beforeSend:function(){$("#divload").show();$("#Pagination").hide();},//发送数据之前
               complete:function(){$("#divload").hide();$("#Pagination").show()},//接收数据完毕
               success:function(json) {
//               debugger
                        $("#productTable tr:gt(0)").remove();
//                        var productData = json.Products;
                         var productData = json ;
                        $.each(productData, function(i, n) {
//                        debugger
                            var trs = "";
                            trs += "<tr><td>" + n.orderid + "</td><td>" + n.customerid + "</td><td>" + n.shipname + "</td><td>" + n.shipcity + "</td></tr>";
                            tbody += trs;
                        });
                        $("#productTable").append(tbody);
                        $("#productTable tr:gt(0):odd").attr("class", "odd");
                        $("#productTable tr:gt(0):even").attr("class", "enen");
                        $("#productTable tr:gt(0)").hover(function(){
                            $(this).addClass('mouseover');
                        },function(){
                            $(this).removeClass('mouseover');
                        });
                }});
                //分页控件
                $("#Pagination").pagination(<%=pagecount %>, {
                    callback: pageselectCallback,
                    prev_text: '« Previous',//“前一页”分页按钮上显示的文字
                    next_text: 'Next »',    //“下一页”分页按钮上显示的文字
                    items_per_page:20,      //每页显示的条目数
		            num_display_entries:6,  //连续分页主体部分显示的分页条目数
		            current_page:pageindx,  //当前选中的页面
		            num_edge_entries:2
                    //link_to: 分页的链接 字符串,可选参数,默认是"#"
                    //ellipse_text: 省略的页数用什么文字表示  可选字符串参数,默认是"…"
                    //prev_show_always: 是否显示“前一页”分页按钮           布尔型,可选参数,默认为true,即显示“前一页”按钮 
                    //next_show_always: 是否显示“下一页”分页按钮           布尔型,可选参数,默认为true,即显示“下一页”按钮 
                });
        }
        //排序
        function Sort(ordercolumn,ordertipid)
        {
            var ordertype="";//1:desc,0:asc
            var $orderimg = $("#"+ordertipid);
            if($orderimg.html()!="")
            {
                var imgsrc = $("img",$orderimg).attr("src");
                if(imgsrc.indexOf("asc")>-1){
                 $(".ordertip").empty();
                   $orderimg.html(" <img src=\"images/sort_desc.gif\" align=\"absmiddle\">");
                    ordertype = 1;
                }
                else
                { $(".ordertip").empty();
                    $orderimg.html(" <img src=\"images/sort_asc.gif\" align=\"absmiddle\">");
                    ordertype = 0;
                }
            }
            else
            {
             $(".ordertip").empty();
                 $orderimg.html(" <img src=\"images/sort_desc.gif\" align=\"absmiddle\">");
                    ordertype = 1;
            }
            orderby = ordercolumn+"_"+ordertype;
            InitData(0);
        } 
    </script>
    <style type="text/css">
        table
        {
            width: 600px;
            background-color: #ffffff;
        }
        table th
        {
            height: 24px;
            background-color: #037E12;
            color: White;
        }
        .odd
        {
            background-color: #5FD66C;
        }
        .enen
        {
            background-color: #BCF5C4;
        }
        .mouseover
        {
            background-color: orange;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="divload" style="top: 50%; right: 50%; position: absolute; padding: 0px;
        margin: 0px; z-index: 999">
        <img src="images/spinner3-greenie.gif" />
    </div>
    <div>
        <table cellpadding="5" cellspacing="1" width="620" id="productTable" align="center">
            <tr>
                <th style="width: 100px">
                    <a style="cursor: pointer;" onclick="Sort('orderid','productid');return false;">orderid</a><span
                        id="productid" class="ordertip"></span>
                </th>
                <th style="width: 200px">
                    <a style="cursor: pointer;" onclick="Sort('customerid','ProductName');return false;">
                        customerid</a><span id="ProductName" class="ordertip"></span>
                </th>
                <th style="width: 200px">
                    <a style="cursor: pointer;" onclick="Sort('shipname','UnitPrice');return false;">shipname</a><span
                        id="UnitPrice" class="ordertip"></span>
                </th>
                <th style="width: 120px">
                    <a style="cursor: pointer;" onclick="Sort('shipcity','Discontinued');return false;">
                        shipcity</a><span id="Discontinued" class="ordertip"></span>
                </th>
            </tr>
        </table>
    </div>
    <div id="Pagination" class="digg">
    </div>
    <div style="text-align: center;">
        分页样式:
        <select id="pageTheme">
            <option value="digg">digg</option>
            <option value="meneame">meneame</option>
            <option value="flickr">flickr</option>
            <option value="sabrosus">sabrosus</option>
            <option value="scott">scott</option>
            <option value="black">black</option>
            <option value="black2">black2</option>
            <option value="black-red">black-red</option>
            <option value="grayr">grayr</option>
            <option value="yellow">yellow</option>
            <option value="jogger">jogger</option>
            <option value="starcraft2">starcraft2</option>
            <option value="tres">tres</option>
            <option value="megas512">megas512</option>
            <option value="technorati">technorati</option>
            <option value="youtube">youtube</option>
            <option value="msdn">msdn</option>
            <option value="badoo">badoo</option>
            <option value="manu">manu</option>
            <option value="viciao">viciao</option>
            <option value="green-black">green-black</option>
            <option value="yahoo2">yahoo2</option>
        </select>
    </div>
    </form>
</body>
</html>

 

3.EasyFunction.aspx.cs

 

    protected string pagecount;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            pagecount = "10002"; //查询数据库取得记录总数
    }

4.添加Handler.ashx

public void ProcessRequest(HttpContext context)
{
        int pageSize = 20; //每页记录数
        int pageIndex;     //当前页
        int.TryParse(context.Request["pageindx"], out pageIndex);
        #region SQL排序
        string order = "orderid desc"; //SQL排序
        string[] strarr = new string[1];
        bool IsOrder = false;
        if (!string.IsNullOrEmpty(context.Request["orderby"]))
        {
            IsOrder = true;
            strarr = context.Request["orderby"].ToString().Split('_');
            if (strarr[1] == "0")
                order = strarr[0] + " asc"; //正序
            else
                order = strarr[0] + " desc";//倒序
        }
				List<test> list = GetPageDate(pageIndex,pageSize,order);      //根据当前页、每页大小、排序 到数据库中分页查询出此页数据  MSSQL分页查询的存储过程网上到处都有,oracle分页查询语句也很容易找到
				object data = Newtonsoft.Json.JsonConvert.SerializeObject(list);  //Newtonsoft.Json.dll网上也有的下,如果是Framework4.0就用自带的
				context.Response.Write(data);
}

 

 

 

抱歉!评论已关闭.