不用系统自带的分页 实现高效的无刷新分页怎么弄  最好是repeater也能分页

解决方案 »

  1.   

    回楼主:实现高效的分页,最好就是用预编译的存储过程。至于无刷新,ajax或jQuery. 至于容器,随意。
      

  2.   

    http://blog.csdn.net/porschev/archive/2011/01/04/6114997.aspx
      

  3.   

     用 jquery.pagination.js 
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>   
    <!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 runat="server">   
        <title>Porschev----无刷新翻页</title>       
        <mce:script src="Script/jquery-1.4.1.min.js" mce_src="Script/jquery-1.4.1.min.js" type="text/javascript"></mce:script>   
        <mce:script src="Script/jquery.pagination.js" mce_src="Script/jquery.pagination.js" type="text/javascript"></mce:script>       
        <mce:script src="Script/tablecloth.js" mce_src="Script/tablecloth.js" type="text/javascript"></mce:script>      
        <link href="Style/tablecloth.css" mce_href="Style/tablecloth.css" rel="stylesheet" type="text/css" />   
        <link href="Style/pagination.css" mce_href="Style/pagination.css" rel="stylesheet" type="text/css" />   
        <mce:script type="text/javascript"><!--   
           
        var pageIndex = 0;     //页面索引初始值   
        var pageSize = 10;     //每页显示条数初始化,修改显示条数,修改这里即可   
          
          
        $(function() {          
            InitTable(0);    //Load事件,初始化表格数据,页面索引为0(第一页)   
                                                                   
            //分页,PageCount是总条目数,这是必选参数,其它参数都是可选   
            $("#Pagination").pagination(<%=pageCount %>, {   
                callback: PageCallback,   
                prev_text: '上一页',       //上一页按钮里text   
                next_text: '下一页',       //下一页按钮里text   
                items_per_page: pageSize,  //显示条数   
                num_display_entries: 6,    //连续分页主体部分分页条目数   
                current_page: pageIndex,   //当前页索引   
                num_edge_entries: 2        //两侧首尾分页条目数   
            });   
                   
            //翻页调用   
            function PageCallback(index, jq) {              
                InitTable(index);   
            }   
            //请求数据   
            function InitTable(pageIndex) {                                   
                $.ajax({    
                    type: "POST",   
                    dataType: "text",   
                    url: 'Handler/PagerHandler.ashx',      //提交到一般处理程序请求数据   
                    data: "pageIndex=" + (pageIndex + 1) + "&pageSize=" + pageSize,          //提交两个参数:pageIndex(页面索引),pageSize(显示条数)                   
                    success: function(data) {                                    
                        $("#Result tr:gt(0)").remove();        //移除Id为Result的表格里的行,从第二行开始(这里根据页面布局不同页变)   
                        $("#Result").append(data);             //将返回的数据追加到表格   
                    }   
                });               
            }   
               
        });   
            
    // --></mce:script>   
    </head>   
    <body>   
    <div align="center">   
      <h1>Posrchev----无刷新分页</h1>   
    </div>   
    <div id="container">     
       <table id="Result" cellspacing="0" cellpadding="0">             
                <tr>   
                    <th>编号</th>   
                    <th>名称</th>                
                </tr>                                                                                                
       </table>   
        <div id="Pagination"></div>   
    </div>   
    </body>   
    </html>
      

  4.   

    推荐jquery 的表格控件--jqgrid!
    -----------------------------------
    也可以
    C#2.0下用Ajax无刷新快速分页例子(二)
    default.aspx:
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <!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 runat="server">
    <title>Ajax无刷新分页</title>
    <script language="javascript">
    var dtObj=new Object();
    function stringToInteger(inputString)
    {
      if(inputString == null || inputString == "")
      {
         return 0;
      }
      else
      {
        try
        {
          return parseInt(inputString);
        }
        catch(e)
        {
          return 0;
        }
      }     
    }
    function numberToString(inputNumber)
    {
      return inputNumber.toString();
    }
    function getUrlParam(param)
    {
       var url=window.location.search.substring(1);
       var paramArray=url.split("&");
       for(var i=0;i<paramArray.length;i++)
       {
          var pramArraySub=paramArray[i].split("=");
       if(pramArraySub[0]==param && pramArraySub[1] != "undefined")
         return pramArraySub[1];   
       }
       return "";
    }
    var pageSize=5;
    //var pageNo=stringToInteger(getUrlParam("pageno"));
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div align=center><span id="sp_ShowContent"></span></div>        
        </form>
    </body>
    </html>
    <script language=javascript>
    var pageNo =0;
    var dtObj = new Object();
    dtObj=_Default.GetDataTable().value;// 从后台得到数据
    var totalPage=0;
    var totalRecord = dtObj.Rows.length;
    if((dtObj.Rows.length%pageSize)==0)
      totalPage = dtObj.Rows.length/pageSize;
    else  
      totalPage = Math.ceil(dtObj.Rows.length/pageSize);
     function showContent(op)
    {
         if(op == "first")
      {
        pageNo = 0;
      }
      else if(op == "previous")
      {
        if(pageNo>0)
        pageNo-=1;
        else
        pageNo=0;
      }
      else if(op == "next")
      {
        if(pageNo<totalPage-1)
         pageNo+=1;
         else
         pageNo = totalPage-1;
      }
      else if(op == "last")
      {
        pageNo=totalPage-1;
      }
      else
      {
        pageNo=0;
      }
      var content = "";
      var startRecord = pageNo*pageSize;
      var endRecord = 0;
      if(pageNo>=totalPage-1)
       endRecord = totalRecord;
      else
         endRecord = (pageNo+1)*pageSize;
      content = '<table width="75%" border="1" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#339900">';
         content += '<tr>'; 
         content += '<td width="45%">编号</td>';
         content += '<td width="55%">用户名</td>';
         content += '</tr>';
         for(var i=startRecord;i<endRecord;i++)
         {
           content += '<tr>'; 
           content += '<td width="45%">'+dtObj.Rows[i]["ID"]+'</td>';//ID,UserName is Column Name
           content += '<td width="55%">'+dtObj.Rows[i]["UserName"]+'</td>';
           content += '</tr>';
         }
         content += '<tr align="center">';
         content += '<td colspan="2"><a href="#" onClick="showContent(\'first\')">第一页</a>&nbsp;<a href="#" onClick="showContent(\'previous\')">上一页</a>&nbsp;<a href="#" onClick="showContent(\'next\')">下一页</a>&nbsp;<a href="#" onClick="showContent(\'last\')">最后页</a></td>';
         content += '</tr>';
         content += '</table>'; 
      window.document.getElementById("sp_ShowContent").innerHTML=content;
    }
    showContent("first");
    </script>
      

  5.   

    http://blog.bingo929.com/15-jquery-plugins-for-better-table-manipulation.html
      

  6.   

    问题二 :
    可以用asp.netpager
      

  7.   

    http://www.webdiyer.com/Controls/AspNetPager 可以看下~
      

  8.   

    存储过程分页。AspNetPageJQUERY插件 分页
      

  9.   

    http://www.webdiyer.com/AspNetPagerDemo/PagedRepeater/default.aspxReapter 分页 DEMO 与 控件