快速业务通道

自定义ascx文件来控制分页

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

1、moonPage.ascx:

<%@ Control Language="c#" AutoEventWireup="false" Codebehind="moonPage.ascx.cs" Inherits="firstcs_03.moonPage" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
自定义ascx文件来控制分页
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="98%" border="0">
自定义ascx文件来控制分页 
<TR>
自定义ascx文件来控制分页  
<TD align="right"><asp:linkbutton id="FirstPage" runat="server">[首页]</asp:linkbutton>&nbsp;
自定义ascx文件来控制分页   
<asp:linkbutton id="PrevPage" runat="server">[上页]</asp:linkbutton>&nbsp;
自定义ascx文件来控制分页   
<asp:linkbutton id="NextPage" runat="server">[下页]</asp:linkbutton>&nbsp;
自定义ascx文件来控制分页   
<asp:linkbutton id="LastPage" runat="server">[末页]</asp:linkbutton>&nbsp;
自定义ascx文件来控制分页   
<asp:literal id="Literal1" runat="server" Text="转到第"></asp:literal><asp:textbox id="NewPageIndex" runat="server" Width="31px" CssClass="input1"></asp:textbox><asp:literal id="Literal2" runat="server" Text="页"></asp:literal>&nbsp;
自定义ascx文件来控制分页   
<asp:button id="NewPageGo" runat="server" Text="Go" CssClass="input1"></asp:button>&nbsp;</TD>
自定义ascx文件来控制分页 
</TR>
自定义ascx文件来控制分页
</TABLE>

2、moonPage.ascx.cs
namespace firstcs_03
{
自定义ascx文件来控制分页 
using System;
自定义ascx文件来控制分页 
using System.Data;
自定义ascx文件来控制分页 
using System.Drawing;
自定义ascx文件来控制分页 
using System.Web;
自定义ascx文件来控制分页 
using System.Web.UI.WebControls;
自定义ascx文件来控制分页 
using System.Web.UI.HtmlControls;
自定义ascx文件来控制分页 
using System.Data.SqlClient;
自定义ascx文件来控制分页
 
/// <summary>
自定义ascx文件来控制分页 
///  moonPage 的摘要说明。
自定义ascx文件来控制分页 
/// </summary>

自定义ascx文件来控制分页 public class moonPage : System.Web.UI.UserControl
 
{
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.LinkButton FirstPage;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.LinkButton PrevPage;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.LinkButton NextPage;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.LinkButton LastPage;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.Literal Literal1;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.TextBox NewPageIndex;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.Literal Literal2;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.Button NewPageGo;
自定义ascx文件来控制分页  
protected int currentpage;
自定义ascx文件来控制分页  
protected int pagesize;
自定义ascx文件来控制分页  
protected string proc;
自定义ascx文件来控制分页  
protected System.Web.UI.WebControls.DataGrid datagrid;
  

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
private void Page_Load(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页   
if(!IsPostBack)
   
{
自定义ascx文件来控制分页    
using(SqlConnection conn = new SqlConnection("uid=sa;pwd=sa;server=localhost;initial catalog=pubs;timeout=90"))
       
{
自定义ascx文件来控制分页     SqlCommand cmd 
= new SqlCommand("select count(*) as expr1 from authors",conn);
自定义ascx文件来控制分页     cmd.Connection.Open();
自定义ascx文件来控制分页     rowcount 
= (int)cmd.ExecuteScalar();
自定义ascx文件来控制分页     cmd.Connection.Close();
自定义ascx文件来控制分页     ViewState[
"rowscount"= rowcount;
自定义ascx文件来控制分页    }

自定义ascx文件来控制分页    ViewState[
"currentpage"= currentpage;
自定义ascx文件来控制分页    FillGrid(proc,currentpage,pagesize,datagrid);
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页 
自定义ascx文件来控制分页
  

自定义ascx文件来控制分页  
private void FillGrid(string proc,int currentpage,int pagesize,DataGrid datagrid)
  
{
自定义ascx文件来控制分页   
using(SqlConnection conn = new SqlConnection("Uid=sa;pwd=sa;server=localhost;initial catalog=pubs;timeout=90"))
      
{
自定义ascx文件来控制分页    SqlCommand cmd 
= new SqlCommand(proc,conn);
自定义ascx文件来控制分页    cmd.CommandType 
= CommandType.StoredProcedure;
自定义ascx文件来控制分页    cmd.Parameters.Add(
"@CurrentPage",currentpage);
自定义ascx文件来控制分页    cmd.Parameters.Add(
"@PageSize",pagesize);
自定义ascx文件来控制分页    cmd.Connection.Open();
自定义ascx文件来控制分页
自定义ascx文件来控制分页    SqlDataReader sdr 
= cmd.ExecuteReader();
自定义ascx文件来控制分页    datagrid.DataSource 
= sdr;
自定义ascx文件来控制分页    datagrid.DataBind();
自定义ascx文件来控制分页    sdr.Close();
自定义ascx文件来控制分页    cmd.Connection.Close();
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
//首页
自定义ascx文件来控制分页
  private void FirstPage_Click(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页   
//disabled首页按钮和上一页按钮
自定义ascx文件来控制分页
   FirstPage.Enabled = false;
自定义ascx文件来控制分页   PrevPage.Enabled 
= false;   
自定义ascx文件来控制分页   currentpage 
= 0;
自定义ascx文件来控制分页   ViewState[
"currentpage"= currentpage;
自定义ascx文件来控制分页   FillGrid(proc,currentpage,pagesize,datagrid);
自定义ascx文件来控制分页   
//如果不止一页
自定义ascx文件来控制分页
   if((int)ViewState["rowscount"]>((int)ViewState["currentpage"]+1)*pagesize)
   
{
自定义ascx文件来控制分页    NextPage.Enabled 
= true;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页   
if((int)ViewState["rowscount"]>((int)ViewState["currentpage"]+1)*pagesize)
   
{
自定义ascx文件来控制分页    LastPage.Enabled 
= true;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
//上一页
自定义ascx文件来控制分页
  private void PrevPage_Click(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页
自定义ascx文件来控制分页   NextPage.Enabled 
= true;
自定义ascx文件来控制分页   LastPage.Enabled 
= true;
自定义ascx文件来控制分页   currentpage 
= (int)ViewState["currentpage"]-1;
自定义ascx文件来控制分页   ViewState[
"currentpage"= currentpage;
自定义ascx文件来控制分页   FillGrid(proc,currentpage,pagesize,datagrid);   
自定义ascx文件来控制分页   
//如果到首页则disabled首页和上一页按钮
自定义ascx文件来控制分页
   if((int)ViewState["currentpage"]==0)
   
{
自定义ascx文件来控制分页    PrevPage.Enabled 
= false;
自定义ascx文件来控制分页    FirstPage.Enabled 
= false;
自定义ascx文件来控制分页    
//return;
自定义ascx文件来控制分页
   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
//下一页
自定义ascx文件来控制分页
  private void NextPage_Click(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页   ViewState[
"currentpage"= (int)ViewState["currentpage"]+1;
自定义ascx文件来控制分页   currentpage 
= (int)ViewState["currentpage"];
自定义ascx文件来控制分页   FillGrid(proc,currentpage,pagesize,datagrid);
自定义ascx文件来控制分页   PrevPage.Enabled 
= true;
自定义ascx文件来控制分页   FirstPage.Enabled 
= true;
自定义ascx文件来控制分页   
//如果已经到了最后一页
自定义ascx文件来控制分页
   if(((int)ViewState["currentpage"]+1)*pagesize>(int)ViewState["rowscount"])
   
{
自定义ascx文件来控制分页    NextPage.Enabled 
= false;
自定义ascx文件来控制分页    LastPage.Enabled 
= false;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
//末页
自定义ascx文件来控制分页
  private void LastPage_Click(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页   LastPage.Enabled 
= false;
自定义ascx文件来控制分页   NextPage.Enabled 
= false;
自定义ascx文件来控制分页   ViewState[
"currentpage"= (int)Math.Ceiling((int)ViewState["rowscount"]/pagesize);
自定义ascx文件来控制分页   currentpage 
= (int)ViewState["currentpage"];
自定义ascx文件来控制分页   FillGrid(proc,currentpage,pagesize,datagrid);
自定义ascx文件来控制分页   
//如果有不止一页的纪录
自定义ascx文件来控制分页
   if((int)ViewState["currentpage"]>1)
   
{
自定义ascx文件来控制分页    FirstPage.Enabled 
= true;
自定义ascx文件来控制分页    PrevPage.Enabled 
= true;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页    
//如果只有一页的纪录
自定义ascx文件来控制分页
   else
   
{
自定义ascx文件来控制分页    FirstPage.Enabled 
= false;
自定义ascx文件来控制分页    PrevPage.Enabled 
= false;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页  
//跳转
自定义ascx文件来控制分页
  private void NewPage_Go(string i)
  
{
自定义ascx文件来控制分页   
try
   
{
自定义ascx文件来控制分页    
int PageIndex = Int32.Parse(i);
自定义ascx文件来控制分页    
if (PageIndex<=0)
    
{
自定义ascx文件来控制分页     PageIndex 
= 0;
自定义ascx文件来控制分页    }

自定义ascx文件来控制分页    
else
    
{
自定义ascx文件来控制分页     
if(PageIndex>(int)Math.Ceiling((int)ViewState["rowscount"]/pagesize))
     
{
自定义ascx文件来控制分页      PageIndex 
= (int)Math.Ceiling((int)ViewState["rowscount"]/pagesize);
自定义ascx文件来控制分页     }

自定义ascx文件来控制分页     
else
     
{
自定义ascx文件来控制分页      PageIndex
--;
自定义ascx文件来控制分页     }

自定义ascx文件来控制分页    }

自定义ascx文件来控制分页    
//简单起见,将所有的linkbutton全部改为enable=true
自定义ascx文件来控制分页
    FirstPage.Enabled = true;
自定义ascx文件来控制分页    NextPage.Enabled 
= true;
自定义ascx文件来控制分页    LastPage.Enabled 
= true;
自定义ascx文件来控制分页    PrevPage.Enabled 
= true;
自定义ascx文件来控制分页    ViewState[
"currentpage"= PageIndex;
自定义ascx文件来控制分页    FillGrid(proc,(
int)ViewState["currentpage"],pagesize,datagrid);
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页   
catch(Exception)
   
{
自定义ascx文件来控制分页    
return;
自定义ascx文件来控制分页   }

自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页  
private void NewPageGo_Click(object sender, System.EventArgs e)
  
{
自定义ascx文件来控制分页   NewPage_Go(NewPageIndex.Text.Trim());
自定义ascx文件来控制分页  }

自定义ascx文件来控制分页
自定义ascx文件来控制分页 }

自定义ascx文件来控制分页}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号