sugar

类似baidu google分页页码效果的代码

         ///   <summary>
        
///  创建并显示分页器
        
///   </summary>

         private   void  BuildPager( int  totalRecords, int  currentPage, int  pageSize, int  pid)
        
{
            
int  alter  =   4
 ;
            
int  startPage  =   1
 ;
            
int  endPage  =  currentPage  +
 alter ;
            
int  totalPages  =   this
.CalculateTotalPages(totalRecords,pageSize) ;

            
if (currentPage  >
 alter)
            
{
                startPage 
=  currentPage  -
 alter ;
            }


            
if (endPage  >  totalPages)
            
{
                endPage 
=
 totalPages ;
            }


            
string  strTemp  =   @" <a href='PhotoList.aspx?pid={0}&pno={1}'>{2}</a>&nbsp;&nbsp; "  ;
            StringBuilder sb 
=   new  StringBuilder( ""
) ;
            
if (currentPage  !=
 startPage)
            
{
                sb.Append( 
string .Format( strTemp , pid ,  1  ,  " 上一页 "
 ) ) ;
            }


            
for int  i  =  startPage ; i  <=  endPage ; i ++  )
            
{
                
if ( currentPage  ==
 i )
                
{
                    sb.Append(
" <font color=red> "   +  i  +   " </font>&nbsp;&nbsp; "
) ;
                }

                
else
                
{
                    sb.Append( 
string .Format( strTemp , pid , i , " [ "   +  i  +   " ] "
 ) ) ;
                }

            }


            
if (currentPage  !=  endPage)
            
{
                sb.Append( 
string .Format( strTemp , pid , currentPage  +   1  ,  " 下一页 "
) ) ;
            }


            
this .ltlShowPager.Text  =  sb.ToString() ;
        }


        
///   <summary>
        
///  计算总页数
        
///   </summary>

        
///   <param name="totalRecords"> 总记录数 </param>
        
///   <param name="pageSize"> 每页记录数 </param>

         private   int  CalculateTotalPages( int  totalRecords,  int  pageSize) 
        
{
            
int
 totalPagesAvailable;

            totalPagesAvailable 
=  totalRecords  /
 pageSize;

            
// 由于C#的整形除法 会把所有余数舍入为0,所以需要判断是否需要加1

             if  ((totalRecords  %  pageSize)  >   0 )
                totalPagesAvailable
++
;

            
return
 totalPagesAvailable;
        }

posted on 2006-05-20 10:13 sugar 阅读(2532) 评论(5)  编辑 收藏 引用 所属分类: C#

评论

# re: 类似baidu google分页页码效果的代码 2006-06-02 21:53 leetle

怎么调用的 能不能给个例子啊  回复  更多评论   

# re: 类似baidu google分页页码效果的代码 2008-11-10 15:52 jelylylyylylylyly

SB  回复  更多评论   

# re: 类似baidu google分页页码效果的代码 2009-08-06 10:51 sdf

垃圾...  回复  更多评论   

# re: 类似baidu google分页页码效果的代码 2010-01-13 19:47 aaa

pid是什么意思啊  回复  更多评论   

# re: 类似baidu google分页页码效果的代码 2012-03-22 16:43 afasf

这个代码思想没问题,就是细节有点问题。pid这个参数可以完全不去考虑。。。
还有就是:
endpage=currentPage+displayTotalPage-1;

还有sb这个字符串的取值是不正确的:
if(endPage>displayTotalPage)
{
for(var i=currentPage;i<endPage;i++)
{
sb.append(i.toString()+",");
}
}
else
{
for(var i=startPage;i<endPage;i++)
{
sb.append(i.toString()+",");
}

}  回复  更多评论   

只有注册用户登录后才能发表评论。

公告

WB Editor 是支持中文 blog 写作的工具。



导航

<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

程序设计 Program design

搜索

最新评论

阅读排行榜

评论排行榜