datagrid 自定义分页功能

问题描述

我想做一个datagrid分页功能比如<<1234>>共4页请问如何写请高手执教先谢了

解决方案

解决方案二:
谁来救救我啊
解决方案三:
这个应该很简单的啊,可以直接编辑的吧~~你再仔细琢磨琢磨
解决方案四:
属性生成器里面设置
解决方案五:
控件上点击右键--属性生成器-分页把允许分页打上勾,页大小自己设置,模式里面选择"页码"就好了。
解决方案六:
<%@Pagelanguage="c#"EnableViewState="true"Codebehind="DataGridPaging.aspx.cs"AutoEventWireup="false"Inherits="eMeng.Exam.DataGridPaging.DataGridPaging"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD>2e)[9`(b1W!K+O<metacontent="VisualBasic7.0"name="CODE_LANGUAGE">#<metacontent="JavaScript"name="vs_defaultClientScript"><metacontent="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema"></HEAD><bodyMS_POSITIONING="GridLayout"><formid="Form1"runat="server"><asp:datagridid="MyDataGrid"runat="server"AutoGenerateColumns="False"HorizontalAlign="Center"AlternatingItemStyle-BackColor="#eeeeee"7HeaderStyle-BackColor="#aaaadd"Font-Size="8pt"Font-Name="Verdana"CellSpacing="0"CellPadding="3"GridLines="Both"BorderWidth="1"#BorderColor="black"OnPageIndexChanged="MyDataGrid_Page"PagerStyle-HorizontalAlign="Right"PagerStyle-Mode="NumericPages"PageSize="5"AllowPaging="True"><AlternatingItemStyleBackColor="#EEEEEE"></AlternatingItemStyle><HeaderStyleBackColor="#AAAADD"Font-Bold="True"HorizontalAlign="Center"></HeaderStyle><PagerStyleHorizontalAlign="Right"Mode="NumericPages"></PagerStyle><Columns><asp:BoundColumnHeaderText="标题"DataField="Title"HeaderStyle-Width="480px"></asp:BoundColumn><asp:BoundColumnHeaderText="发表日期"DataField="CreateDate"DataFormatString="{0:yyyy-MM-ddhh:mm:ss}"></asp:BoundColumn></Columns></asp:datagrid><pstyle="FONT-SIZE:9pt"align="center">2<asp:labelid="lblPageCount"runat="server"></asp:label><asp:labelid="lblCurrentIndex"runat="server"></asp:label><asp:linkbuttonid="btnFirst"onclick="PagerButtonClick"runat="server"Font-Name="verdana"Font-size="8pt"ForeColor="navy"CommandArgument="0"></asp:linkbutton><asp:linkbuttonid="btnPrev"onclick="PagerButtonClick"runat="server"Font-Name="verdana"Font-size="8pt"ForeColor="navy"CommandArgument="prev"></asp:linkbutton><asp:linkbuttonid="btnNext"onclick="PagerButtonClick"runat="server"Font-Name="verdana"Font-size="8pt"ForeColor="navy"CommandArgument="next"></asp:linkbutton><asp:linkbuttonid="btnLast"onclick="PagerButtonClick"runat="server"Font-Name="verdana"Font-size="8pt"ForeColor="navy"CommandArgument="last"></asp:linkbutton></p></form></body></HTML>DataGridPaging.aspxusingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespaceeMeng.Exam.DataGridPaging{///<summary>///DataGridPaging的摘要说明///</summary>publicclassDataGridPaging:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.DataGridMyDataGrid;protectedSystem.Web.UI.WebControls.LabellblPageCount;protectedSystem.Web.UI.WebControls.LabellblCurrentIndex;protectedSystem.Web.UI.WebControls.LinkButtonbtnFirst;protectedSystem.Web.UI.WebControls.LinkButtonbtnPrev;protectedSystem.Web.UI.WebControls.LinkButtonbtnNext;protectedSystem.Web.UI.WebControls.LinkButtonbtnLast;privateOleDbConnectioncn=newOleDbConnection();privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面:btnFirst.Text="最首页";btnPrev.Text="前一页";btnNext.Text="下一页";btnLast.Text="最后页";OpenDatabase();BindGrid();}privatevoidOpenDatabase(){cn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath("xxxx.mdb");cn.Open();}privatevoidShowStats(){lblCurrentIndex.Text="第"+(MyDataGrid.CurrentPageIndex+1).ToString()+"页";lblPageCount.Text="总共"+MyDataGrid.PageCount.ToString()+"页";}publicvoidPagerButtonClick(objectsender,EventArgse){stringarg=((LinkButton)sender).CommandArgument.ToString()switch(arg)case"next":if(MyDataGrid.CurrentPageIndex<(MyDataGrid.PageCount-1)){MyDataGrid.CurrentPageIndex+=1;}break;case"prev":if(MyDataGrid.CurrentPageIndex>0){MyDataGrid.CurrentPageIndex-=1;}break;case"last":MyDataGrid.CurrentPageIndex=(MyDataGrid.PageCount-1);break;default:MyDataGrid.CurrentPageIndex=System.Convert.ToInt32(arg);break;}BindGrid();ShowStats();}publicvoidBindGrid()#m$S.M_0I&e'c0{{OleDbConnectionmyConnection=cn;DataSetds=newDataSet();OleDbDataAdapteradapter=newOleDbDataAdapter("SelectTitle,CreateDatefromDocument",myConnection);adapter.Fill(ds,"Document");MyDataGrid.DataSource=ds.Tables["Document"].DefaultView;MyDataGrid.DataBind();ShowStats();}publicvoidMyDataGrid_Page(objectsender,DataGridPageChangedEventArgse)*i+R$];{intstartIndex;startIndex=MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize;:;MyDataGrid.CurrentPageIndex=e.NewPageIndex;BindGrid();ShowStats();}#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}///<summary>"///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>)privatevoidInitializeComponent()){this.Load+=newSystem.EventHandler(this.Page_Load);}#endregion}}

解决方案七:
为什么不用系统自己带的分页呢?建议你找相关例子来看~下面是一个自己分页的例子给repeater的,修改下可以用privatevoidNewsBind()//repeater分页并绑定{//stringSqlStr="SELECT[ThesisID],[ThesisName],[ThesisCorp],[ThesisOwner]FROM[ConferThesis]WHERE([ConferID]=@ConferID)ORDERBY[ThesisCorp]";stringSqlStr="select[ConferID],[ConferName]from[ConferInfo]WHERE[TagData]='V'orderby[ConferID]";stringconnectionString=System.Configuration.ConfigurationManager.ConnectionStrings["ChemInterConn"].ToString();SqlConnectionconn=newSqlConnection(connectionString);conn.Open();SqlDataAdapterAdapter=newSqlDataAdapter(SqlStr,conn);DataSetds=newDataSet();try{Adapter.Fill(ds,"testTable");PagedDataSourceobjPage=newPagedDataSource();objPage.DataSource=ds.Tables["testTable"].DefaultView;objPage.AllowPaging=true;objPage.PageSize=5;intCurPage;if(Request.QueryString["Page"]!=null){CurPage=Convert.ToInt32(Request.QueryString["page"]);}else{CurPage=1;}objPage.CurrentPageIndex=CurPage-1;LeaveMessage.DataSource=objPage;//这里更改控件名称LeaveMessage.DataBind();//这里更改控件名称RecordCount.Text=objPage.DataSourceCount.ToString();PageCount.Text=objPage.PageCount.ToString();Pageindex.Text=CurPage.ToString();Literal1.Text=PageList(objPage.PageCount,CurPage);//Literal1.Text=PageList(objPage.PageCount,Pageindex,L_Manage);//带参数的:LManage为参数FirstPage.NavigateUrl=Request.CurrentExecutionFilePath+"?page=1";PrevPage.NavigateUrl=Request.CurrentExecutionFilePath+"?page="+(CurPage-1);NextPage.NavigateUrl=Request.CurrentExecutionFilePath+"?page="+(CurPage+1);LastPaeg.NavigateUrl=Request.CurrentExecutionFilePath+"?page="+objPage.PageCount.ToString();if(CurPage<=1&&objPage.PageCount<=1){FirstPage.NavigateUrl="";PrevPage.NavigateUrl="";NextPage.NavigateUrl="";LastPaeg.NavigateUrl="";/**//**//**//*FirstPage.Visible=false;PrevPage.Visible=false;NextPage.Visible=false;LastPaeg.Visible=false;*/}if(CurPage<=1&&objPage.PageCount>1){FirstPage.NavigateUrl="";PrevPage.NavigateUrl="";/**//**//**//*FirstPage.Visible=false;PrevPage.Visible=false;*/}if(CurPage>=objPage.PageCount){NextPage.NavigateUrl="";LastPaeg.NavigateUrl="";/**//**//**//*NextPage.Visible=false;LastPaeg.Visible=false;*/}}catch(Exceptionerror){Response.Write(error.ToString());}finally{conn.Close();}}privatestringPageList(intPagecount,intPageindex)//privatestringJump_List(intPagecount,intPageindex,longL_Manage)//带参数的传递{StringBuildersb=newStringBuilder();//下为带参数的传递//sb.Append("<selectid="Page_Jump"name="Page_Jump"onchange="window.location='"+Request.CurrentExecutionFilePath+"?page='+this.options[this.selectedIndex].value+'&Org_ID="+L_Manage+"';">");//不带参数的传递sb.Append("<selectid="Page_Jump"name="Page_Jump"onchange="window.location='"+Request.CurrentExecutionFilePath+"?page='+this.options[this.selectedIndex].value+'';">");for(inti=1;i<=Pagecount;i++){if(Pageindex==i)sb.Append("<optionvalue='"+i+"'selected>"+i+"</option>");elsesb.Append("<optionvalue='"+i+"'>"+i+"</option>");}sb.Append("</select>");returnsb.ToString();}
解决方案八:
数据量大就用存储过程分页,邹杰写过
解决方案九:
这个在属性生成器里面有哦!我用过哦!很好用!慢慢琢磨吧!

时间: 2024-09-11 19:29:03

datagrid 自定义分页功能的相关文章

ASP.NET中利用DataGrid的自定义分页功能

asp.net|datagrid|分页 ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现

DataGrid自定义分页

datagrid|分页 ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现分页. 下面介绍

现windows应用程序中用的datagrid具有分页功能

datagrid|window|程序|分页 工作需要,要实现windows应用程序中用的datagrid具有分页功能,不知道ms怎么想的,asp.net的datagrid有这样的功能,为什么不在winForm的datagrid里面提供这样的功能,还得让我费这么大劲儿来重写这个控件,真是麻烦. 首先,我们要做一个类来继承系统的datagrid: using System; using System.Drawing; using System.Collections; using System.Co

为DataGrid自定义分页添加自定义导航和分页信息

datagrid|分页 在上一篇文章中我讲到了对DataGrid实行自定义分页,这可以避免为了显示一页数据而获取整个数据记录集,从而提高分页效率,不过使用的导航还是DataGrid自带的数字连接或简单的上一页,下一页,而且看不到总页数.总记录数之类的信息.下面就为他增加我们所需要的部分. 先来看看修改后的分页显示,截图如下: (图一) 使用的数据源同上一篇文章(Asp.net中DataGrid控件的自定义分页)相同,都是访问Northwind库,为了独立开来这里还是把存储过程列了一下, CREA

DataGrid自定义分页存储过程

datagrid|存储过程|分页   存储过程代码: CREATE proc page@RecordCount int output,@QueryStr nvarchar(100)='table1',--表名.视图名.查询语句@PageSize int=20,  --每页的大小(行数)@PageCurrent int=1,  --要显示的页@FdShow nvarchar (1000)='*', --要显示的字段列表@IdentityStr nvarchar (100)='id', --主键@W

ASP.NET GridView学习之二 自定义分页功能

1就一些核心代码 2ClientInfo.cs和ClientinfoAccessObj.cs在学习一中有过了 3 4using System; 5using System.Data; 6using System.Configuration; 7using System.Collections; 8using System.Web; 9using System.Web.Security; 10using System.Web.UI; 11using System.Web.UI.WebControl

ASP.NET:DataGrid控件的分页功能

asp.net|datagrid|datagrid控件|分页 DataGrid 控件是一个基于模板样式的.多功能的.多列的数据绑定控件.在三个数据绑定控件中,DataGrid是功能最为强大的,其次时DataList控件,然后是轻量级的数据绑定控件Repeater.要自定义 DataGrid 中各列的布局,您可以将列类型设置为"模板",然后修改列的模板.DataGrid 控件也可以无需模板,只需按照默认的设置即可进行呈现,这使得该控件成了用于报告方案的理想控件.      我们可以把Da

Laravel 5.1 分页功能实现及自定义分页样式的例子

Laravel还为分页提供了多种实现方式,既可以基于查询构建器实现分页,也可以基于Eloquent模型进行分页,最终生成的分页视图还兼容Bootstrap CSS样式.讲到这里,估计很多人已经跃跃欲试了,想要迫不及待的看看Laravel到底是如何实现分页的,下面让我们一一道来: 1.使用查询构建器实现分页 简单分页 我们可以在查询构建器上简单调用simplePaginate方法,从而实现类似WordPress默认分页的样式(上一页.下一页这种简单的分页链接): class PostControl

?C#中DataGrid的分页问题

问题描述 我的DataGrid的分页功能怎么不能实现呀!代码都没有错误,在运行时,"上一页""下一页"都不是超链接,希望高手能指点一下,我问了好多同学,他们也不知道. 解决方案 解决方案二:不知道你怎么写的帖出来看看解决方案三:http://dev.csdn.net/article/38/38023.shtm解决方案四:用SQL语句去实现分页吧解决方案五:检查看是不是把AllowPaging="True"protectedvoidGridView