分页用户控件的问题

qqhmitzk qqhmitzk 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

namespace Soft.UserControls
{
using System;
using System.Data;
using System.Drawing;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using HuaSoft.DbCon;
using System.Web.UI;
/// <summary>
/// reper 的摘要说明。
/// </summary>
/// [DefaultProperty("SelectCommand")]

public class reper : System.Web.UI.UserControl
{
private CDbCon myDbCon;
//最后一页
protected System.Web.UI.WebControls.LinkButton lbtnDownPage;
//下一页
protected System.Web.UI.WebControls.LinkButton lbtnNextPage;
//上一页
protected System.Web.UI.WebControls.LinkButton lbtnpritPage;
//第一页
protected System.Web.UI.WebControls.LinkButton lbtnFirstPage;
//总分页数
protected System.Web.UI.WebControls.Label labPage;
//当前页码
protected System.Web.UI.WebControls.Label LabCountPage;
//查询字符串
protected System.Web.UI.WebControls.Label Lab_cx;
//显示绑定控件的记录信息(总记录数,总分页数,当前页码)
protected System.Web.UI.WebControls.Label Messge;
private string str;
private Control controlId;

private void Page_Load(object sender, System.EventArgs e)
{
myDbCon=new CDbCon(Session["sConnectionString"].ToString());
if(!Page.IsPostBack)
{ labPage.Text="1";
bind(str);

}
// 在此处放置用户代码以初始化页面
}
//控件类型
public Control ControlId
{
get
{
return controlId;
}
set
{
controlId = value;
}
}
//获取字符串
public string Str1
{
get
{
return str;
}
set
{
str = value;
}
}
//绑定相关控件(Reapter,Datalist)
public void bind(string str11)
{
this.Lab_cx.Text=str11;
DataSet ds=new DataSet();
ds=myDbCon.Select_RepList(Lab_cx.Text);
PagedDataSource _dataSource = new PagedDataSource();
_dataSource.DataSource = ds.Tables[0].DefaultView;

_dataSource.AllowPaging = true;
_dataSource.PageSize=15;
ViewState["CurrentPage"] = 0;
ViewState["CurrentPage"] = Convert.ToInt32(this.labPage.Text)-1;
_dataSource.CurrentPageIndex = Convert.ToInt32(this.labPage.Text)-1;
Getctrtype( _dataSource);
LabCountPage.Text =_dataSource.PageCount.ToString();
showdipay( ds.Tables[0].Rows.Count,_dataSource.Count);

}
//当点击分页按钮时,将重新绑定
public void bind2( )
{ DataSet ds1=new DataSet();
//填充记录集
ds1=myDbCon.Select_RepList(this.Lab_cx.Text);
//新建一PagedDataSource对象实例
PagedDataSource _dataSource = new PagedDataSource();
//绑定PagedDataSource
_dataSource .DataSource = ds1.Tables[0].DefaultView;
_dataSource.AllowPaging = true;
_dataSource.PageSize=15;
ViewState["CurrentPage"] = 0;
ViewState["CurrentPage"] = Convert.ToInt32(this.labPage.Text)-1;
_dataSource.CurrentPageIndex = Convert.ToInt32(this.labPage.Text)-1;
Getctrtype( _dataSource);
LabCountPage.Text =_dataSource.PageCount.ToString();
showdipay( ds1.Tables[0].Rows.Count,_dataSource.Count);

}
//判断类型并绑定之
private void Getctrtype( PagedDataSource _dataSource)
{
if (controlId is Repeater)
{
Repeater cntrl = (Repeater)controlId;
cntrl.DataSource = _dataSource ;
cntrl.DataBind();
}
else if(controlId is DataView)
{
DataGrid cntrl = (DataView)controlId;
cntrl.DataSource = _dataSource ;
cntrl.DataBind();
}
else if(controlId is DataGrid)
{
DataGrid cntrl = (DataGrid)controlId;
cntrl.DataSource = _dataSource ;
cntrl.DataBind();
}
else if(controlId is DataList)
{
DataList cntrl = (DataList)controlId;
cntrl.DataSource = _dataSource ;
cntrl.DataBind();
}
}
//显示分页页数,当前页数
private void showdipay( int records ,int pagecount)
{
this.lbtnFirstPage.Visible=true;
this.lbtnpritPage.Visible=true;
this.lbtnNextPage.Visible=true;
this.lbtnDownPage.Visible=true;
this.lbtnpritPage.Enabled = true;
this.lbtnFirstPage.Enabled = true;
this.lbtnNextPage.Enabled = true;
this.lbtnDownPage.Enabled = true;
if(Int32.Parse(ViewState["CurrentPage"].ToString())<=0&& Convert.ToInt32(labPage.Text)<=1)
{
this.lbtnpritPage.Enabled = false;
this.lbtnFirstPage.Enabled = false;
}
if (Int32.Parse(ViewState["CurrentPage"].ToString())+1==pagecount)
{
this.lbtnNextPage.Enabled = false;
this.lbtnDownPage.Enabled = false;
}
labPage.Text =((Int32.Parse(ViewState["CurrentPage"].ToString()))+1).ToString();
string str1 = "数据源共有<b><FONT color= #ff0000 > " + records+ "</FONT></b>笔数据记录," ;
str1 +="当前为第<b><font color=red>"+labPage.Text+"</font></b>页,共<b><font color=red>"+LabCountPage.Text +"</font></b>页";
this.Messge.Text=str1;
}
//
private void NavigateToPage(object sender, System.EventArgs e)
{ //获取分页指令
string PageInfo = ((LinkButton)sender).CommandName;

switch (PageInfo)
{ //第一页
case "First":
this.labPage.Text ="1";

break;
//上一页
case "pre":
if(Int32.Parse(ViewState["CurrentPage"].ToString())>0)
{
ViewState["CurrentPage"]=Int32.Parse(ViewState["CurrentPage"].ToString())-1;
this.labPage.Text=((Int32.Parse(ViewState["CurrentPage"].ToString()))+1).ToString();

}

break;
//下一页
case "Next":
if(Int32.Parse(ViewState["CurrentPage"].ToString())<(Int32.Parse(this.LabCountPage.Text))-1)

{
ViewState["CurrentPage"]=Int32.Parse(ViewState["CurrentPage"].ToString())+1;
this.labPage.Text=((Int32.Parse(ViewState["CurrentPage"].ToString()))+1).ToString();

}
break;
//最后一页
case "last":
ViewState["CurrentPage"]=(Int32.Parse(LabCountPage.Text)-1);
this.labPage.Text =((Int32.Parse(ViewState["CurrentPage"].ToString()))+1).ToString();
break;
}
//绑定控件
bind2();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.lbtnFirstPage.Click += new System.EventHandler(this.lbtnFirstPage_Click);
this.lbtnpritPage.Click += new System.EventHandler(this.lbtnpritPage_Click);
this.lbtnNextPage.Click += new System.EventHandler(this.lbtnNextPage_Click);
this.lbtnDownPage.Click += new System.EventHandler(this.lbtnDownPage_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void lbtnFirstPage_Click(object sender, System.EventArgs e)
{ NavigateToPage(sender,e);
}

private void lbtnpritPage_Click(object sender, System.EventArgs e)
{NavigateToPage(sender,e);
}

private void lbtnNextPage_Click(object sender, System.EventArgs e)
{NavigateToPage(sender,e);
}

private void lbtnDownPage_Click(object sender, System.EventArgs e)
{NavigateToPage(sender,e);

}
}
}


...全文

相关推荐

listbox的分页问题,我找了好久的

listbox的分页问题,我找了好久的,你也可以把它改成grideview

l475021377

实现分页功能的winform dataGridView控件

自定义分页控件通常需要处理数据的加载、分页逻辑、以及用户交互事件。你需要理解数据的来源,比如是从数据库中获取,还是已经存在内存中的集合。然后,你将编写代码来处理分页请求,展示当前页的数据,同时支持向前、向后翻页,甚至指定页数跳转等功能。分页控件的必选功能特性涉及其在用户界面中提供的基础操作,这些功能是分页控件不可或缺的核心组成部分。代码块示例// 设置分页控件的分页参数// 设置每页显示的记录数// 设置当前页码分页导航: 提供基本的页面导航控件,如首页、上一页、下一页、尾页按钮。

叶宇霖

Winform分页用户控件

对于前面两个版本,实在没办法,删除不掉 最新的数据读取部分已经注释,大家可以按照自己数据读取替换对应代码 修复共多少页错误,忘记计算了 无聊写着玩的,不要喷我

繖墨

datagidview分页控件+自定义分页控件源码

datagidview分页控件自定义分页控件源码三方控件绝对超值

Tony3820

DELPHI分页控件

实现了缓存分页机制,自动刷新,页级排序。分页时与后端数据断开,保证了数据传输因流量过大而阻塞。 类似于ADODATASET,但支持了ADO,BDE,及最新的DBX。 在ORACLE上测试通过。

边缘998
评论 5
收藏 已收藏
分享
返回顶部
qqhmitzk
C# 111,129 成员 642,538 内容