日期:2014-06-10  浏览次数:20604 次

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();
            }
        }
    }
}