WebForm
g2po0010.aspx:<%@ Register src="UserControl/ccnListContorlascx.ascx" tagname="ccnListContorlascx" tagprefix="uc1" %>
<uc1:ccnListContorlascx ID="ccnListContorlascx1" runat="server" />
g2po0010.aspx.cs: public partial class g2po001 : System.Web.UI.Page
WinForm
IP控件 Panle控件上放几个文本框, .用lable控件组合的
IPBox.cs : public partial class IPBox : UserControl
自定义分页控件没有经过验证的代码参考
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace UPPERMACHINER.WIN { public partial class UCPageControl :UserControl //1定义几个所需的共有成员: { int pageSize = 0; //每页显示 int nMax = 0; //总记录数 int pageCount = 0; //页数=总记录数/每页显示行数 int nCurrent = 0; //当前记录行 int pageCurrent = 1; //当前页号 public UCPageControl() { InitializeComponent(); } /// <summary> /// 自定义一个DataTable属性 /// </summary> private DataTable _dt; public DataTable dt { set { _dt = value; } get { return _dt; } } /// <summary> /// 当前页面数据填充DataGridView /// </summary> //private void InitDataTable(DataTable dtInfo) //{ //} public void LoadData() { pageSize = 1; //设置页面行数 DataTable dtInfo = dt; //获得该类当前的数据源datatable if( dtInfo !=null && dtInfo.Rows.Count>0) { nMax = dtInfo.Rows.Count; pageCount = (nMax / pageSize); //计算总页数 if ((nMax % pageSize) > 0) pageCount++; //pageCurrent = 1; //当前页数从1开始 //nCurrent = 0; int nStartPos = 0; //当前页面开始记录行 int nEndPos = 0; //当前页面结束记录行 DataTable dtTemp = dtInfo.Clone(); //克隆DataTable结构框架 if (pageCurrent == pageCount) //如果当前页号数等于总页数 则当前页面结束记录行为最大的记录数即总共的记录数 { nEndPos = nMax; } else { nEndPos = pageSize * pageCurrent; //当前页号不等于总页数 则每页显示的行数即长度乘以当前的页号数 } nStartPos = nCurrent; // 起始记录行等于当前记录行 labSum.Text = "共" + pageCount + "页"; //总页数 labCurrent.Text = "第" + Convert.ToString(pageCurrent) + "页"; //当前页号 //从源数据复制记录行 for (int i = nStartPos; i <nEndPos; i++) { dtTemp.ImportRow(dtInfo.Rows[i]); //起始记录行之间的数据全部复制到dtTemp表 每次当前记录行数+1 nCurrent++; } dataGridView1.DataSource = dtTemp; } } private void linkLast_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { pageCurrent--; if (pageCurrent <= 0) { MessageBox.Show("已经是第一页,请点击 下一页 查看!", "提示"); return; } else { nCurrent = pageSize * pageCurrent; } LoadData(); } private void linkNext_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { pageCurrent++; if (pageCurrent > pageCount) { MessageBox.Show("已经是最后一页,请点击“上一页”查看!"); return; } else { nCurrent = pageSize * pageCurrent; } LoadData(); } /// <summary> /// 验证字符串是否为正整数 /// </summary> /// <param name="str"></param> /// <returns></returns> public static bool IsNumeric(string str) { System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]*[1-9][0-9]*$"); return reg1.IsMatch(str); } /// <summary> /// 转到第几页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (!String.IsNullOrEmpty(textGo.Text.Trim()) && IsNumeric(textGo.Text.Trim())) //如果是个正整数即有效数字则转到相应页面 { nCurrent = pageSize * pageCurrent; LoadData(); } } } }