分页及页码导航 用户控件

该控件成形如图:

主要功能如下:
用户设置每页行数 (或者不设置 则该控件默认每页10笔数据)
用户设置分页控件的数据源DataTable(或者输入查询sql)
该控件会先将传入的数据源保存到session(这样之后就不用重复查询)
然后根据用户的操作(第一页、上一页,下一页,最后页,Go页)
以及当前所在的页码
得到符合条件的返回数据 (即点击下一页或上一页后 需要正确显示的数据集)
同时 可以根据数据是否多于一页 来决定该控件是否需要显示
然后用户可以选用 这返回的DataTable数据集进行相关操作
(本控件 已加入部分js判断)
==============
示例源代码如下:
++++++++++++++++++
PageIndexCtl.ascx
+++++++++++++


+++++++++++++++++++++
PageIndexCtl.ascx.cs
+++++++++++++++++++++

++++++++++++++++++++++++
testPageIndexCtl.aspx.cs
++++++++++++++++++++++++
protected void Button1_Click(object sender, EventArgs e)
    
{
        
string strComm = " SELECT * From Table1 order by id aesc ";
        SqlResult sr 
= Broker.Execute(strComm);
        DataTable dt 
= ObjectView.GetDataView(sr).Table;

        
this.PageIndexCtl1.CountPerPage = 5;
        GridView1.DataSource 
= PageIndexCtl1.selfMeasure(dt);
        GridView1.DataBind();
    }


    
protected void Page_Init()
    
{
        
//订阅事件
        this.PageIndexCtl1.EventFirstPage += new System.EventHandler(this.EventFirstPage);
        
this.PageIndexCtl1.EventPrePage += new System.EventHandler(this.EventPrePage);
        
this.PageIndexCtl1.EventNextPage += new System.EventHandler(this.EventNextPage);
        
this.PageIndexCtl1.EventLastPage += new System.EventHandler(this.EventLastPage);
        
this.PageIndexCtl1.EventGoPage += new System.EventHandler(this.EventGoPage);
    }


    
private void EventFirstPage(object sender, EventArgs e)
    
{
        
        
this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
        
this.GridView1.DataBind();
    }

    
private void EventPrePage(object sender, EventArgs e)
    
{
        
this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
        
this.GridView1.DataBind();
    }

    
private void EventNextPage(object sender, EventArgs e)
    
{
        
this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
        
this.GridView1.DataBind();
    }

    
private void EventLastPage(object sender, EventArgs e)
    
{
        
this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
        
this.GridView1.DataBind();
    }

    
private void EventGoPage(object sender, EventArgs e)
    
{
        
this.GridView1.DataSource = this.PageIndexCtl1.dt_Result;
        
this.GridView1.DataBind();
    }


0
0
(请您对文章做出评价)
« 上一篇:数据仓库自动抽取:通过 SQL Server 企业管理器中的数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务
» 下一篇:用Excel连接和浏览OLAP多维数据集

posted on 2006-12-29 19:37 freeliver54 阅读(1801) 评论(22)  编辑 收藏 网摘 所属分类: VS技術實踐

评论

#1楼 2006-12-30 17:43 随心所欲      

看起来,你的控件需要外部提供数据源,这个数据源里面有所有的数据。
这样的话,是不是太浪费?
控件的分页需要和数据库分页结合。全部把数据取出来,是不现实的。
  回复  引用  查看    

#2楼[楼主] 2006-12-30 18:46 freeliver54      

收到 正在改进中
谢谢提醒
  回复  引用  查看    

#3楼[楼主] 2006-12-31 13:05 freeliver54      

从StuName表 查询第3到5条数据
----------------------------
SQL2000下
---------
SELECT Identity(int,1,1) as RowIndex,
StuID,StuName
INTO #tmpTable
FROM StuSources

SELECT * FROM #tmpTable WHERE RowIndex between 3 and 5

DROP TABLE #tmpTable
------------------------------------------------------
SQL2005下
---------
SELECT * FROM
(SELECT ROW_NUMBER() OVER(order by StuID) as RowIndex ,
StuID,StuName
FROM StuSources ) T
WHERE RowIndex between 3 and 5
-------------------------------------------------------
  回复  引用  查看    

#4楼 2007-01-01 08:54 随心所欲      

@freeliver54
这是数据库分页的一种。数据库分页也非很多种。根据不同的场合有不同的需求。
如果要做成一种控件,最好使用简单的。还要考虑不同数据库类型的扩展。
  回复  引用  查看    

#5楼 2007-01-01 08:57 随心所欲      

就算只有一个sql server,分页也有多种。
这是很早以前的一篇blog,上边有些比较(sql server数据分页 比较
http://www.cnblogs.com/dlwang2002/archive/2005/10/14/254971.html
  回复  引用  查看    

#6楼[楼主] 2007-01-03 10:23 freeliver54      

@随心所欲
多谢提醒
我个人目前的知识面 的确狭窄
感谢你的指导
定当努力 谢谢你!
  回复  引用  查看    

#7楼 2007-01-03 14:49 随心所欲      

@freeliver54
互相学习而已。
我可能也会用到这个控件,做好了免费给我用就可以了^_^
  回复  引用  查看    

#8楼[楼主] 2007-01-10 20:32 freeliver54      

目前在控件内部所加的JS判断
遇到如下困难
就是当该分页控件 应用到ajax的UpdatePanel中时
用传统的document.all.TextBox1.value得不到
当前页面上TextBox1的值

例如:
当点击 下一页 后
页面上的当前页TextBox1 中显示的为 2

通过查看该页面的源代码时 却发现
TextBox1的Value值依然是1
这样 内部js就会判断出错了
  回复  引用  查看    

导航

统计

公告

每一天都有新的开始
每一天都是新的开始
愿我们
善始善终 持之以恒
不管前方 是希望还是迷茫
我们都只有一个信念
让我们的爱  伴我们终生

搜索

 

随笔分类

随笔档案

techLINKS

友情链接

积分与排名

最新评论

阅读排行榜

评论排行榜

60天内阅读排行