zoukankan      html  css  js  c++  java
  • c#,用户控件,分页浏览,winform,datagridview,BandingNavigator,bandingSource Virus

    SelectPaging.JPG

    分页用户控件,使用效果如上图,可以用在查询窗体,代码如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;

    namespace Kimbanx.SecurityDiskSystem.Controls
    {
        
    public partial class SelectPaging : UserControl
        
    {/// <summary>
            
    /// 每页显示记录数
            
    /// </summary>

            private int _pageSize = 20;
            
    /// <summary>
            
    /// 每页显示记录数
            
    /// </summary>

            public int PageSize
            
    {
                
    get return _pageSize; }
                
    set { _pageSize = value; }
            }
    /// <summary>
            
    /// 总记录数
            
    /// </summary>

            private int _nMax = 0;
            
    /// <summary>
            
    /// 总记录数
            
    /// </summary>

            public int NMax
            
    {
                
    get return _nMax; }
                
    set { _nMax = value; }
            }
    /// <summary>
            
    /// 页数=总记录数/每页显示记录数
            
    /// </summary>

            private int _pageCount = 0;
            
    /// <summary>
            
    /// 页数=总记录数/每页显示记录数
            
    /// </summary>

            public int PageCount
            
    {
                
    get return _pageCount; }
                
    set { _pageCount = value; }
            }
    /// <summary>
            
    /// 当前页号
            
    /// </summary>

            private int _pageCurrent = 0;
            
    /// <summary>
            
    /// 当前页号
            
    /// </summary>

            public int PageCurrent
            
    {
                
    get return _pageCurrent; }
                
    set { _pageCurrent = value; }
            }
    /// <summary>
            
    /// 当前记录行
            
    /// </summary>

            private int _nCurrent = 0;
            
    /// <summary>
            
    /// 当前记录行
            
    /// </summary>

            public int NCurrent
            
    {
                
    get return _nCurrent; }
                
    set { _nCurrent = value; }
            }

            
    /// <summary>
            
    /// 设置数据源
            
    /// </summary>

            private DataTable dataSource = null;
            
    /// <summary>
            
    /// 设置数据源
            
    /// </summary>

            public DataTable DataSource
            
    {
                
    get return dataSource; }
                
    set { dataSource = value; }
            }

            
    //private DataSet ds = null;

            
    public void InitDataSet(DataTable dt)
            
    {
                
    this.dataSource = dt;
                
    this._nMax = this.dataSource.Rows.Count;
                
    //计算总页数
                this._pageCount = _nMax / _pageSize;
                
    //
                if ((_nMax % _pageSize) > 0)
                    _pageCount
    ++;
                _pageCurrent 
    = 1;
                _nCurrent 
    = 0;
                FillData();
            }

            
    /// <summary>
            
    /// 默认构造函数
            
    /// </summary>

            public SelectPaging()
            
    {
                InitializeComponent();
                lblMsg.Enabled 
    = false;

            }

            
    /// <summary>
            
    /// 填充数据
            
    /// </summary>

            private void FillData()
            
    {
                
    //当前页面开始记录行
                int nStartPos = 0;
                
    //当前页面结束记录行
                int nEndPos = 0;
                DataTable dtTemp 
    = this.dataSource.Clone();
                
    if (this._pageCurrent == this._pageCount)
                    nEndPos 
    = _nMax;
                
    else
                    nEndPos 
    = this._pageCurrent * this._pageSize;

                nStartPos 
    = this._nCurrent;

                lblMaxPage.Text 
    = this._pageCount.ToString();
                txtCurrentPage.Text 
    = this._pageCurrent.ToString();

                
    for (int i = nStartPos; i < nEndPos; i++)
                
    {
                    dtTemp.ImportRow(
    this.dataSource.Rows[i]);
                    _nCurrent
    ++;
                }

                bdSource.DataSource 
    = dtTemp;
                bdNav.BindingSource 
    = bdSource;
                dataGV.DataSource 
    = bdSource;

            }


            
    private void bdNav_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            
    {
                
    switch (e.ClickedItem.Text)
                
    {
                    
    case "移到上一条记录":
                        
    //FillData();
                        break;
                    
    case "移到下一条记录":
                        
    //FillData();
                        break;
                    
    case "上一页":
                       
                        
    if (this._pageCurrent == 1)
                        
    {
                            lblMsg.Text 
    = "已经是第一页,请点击“下一页”查看!";
                            
    //btnPrePage.Enabled = false;
                            return;
                        }

                        
    else
                        
    { _pageCurrent--;
                            
    this._nCurrent = this._pageSize * (_pageCurrent - 1);
    FillData();
                        }


                        
    break;
                    
    case "下一页":
                        
                        
    if (this._pageCurrent == _pageCount)
                        
    {
                            lblMsg.Text 
    = "已经是最后一页,请点击“上一页”查看!";
                            
    return;
                        }

                        
    else
                        
    {
    _pageCurrent
    ++;
                            
    this._nCurrent = this._pageSize * (_pageCurrent - 1); FillData();
                        }

                       
                        
    break;
                }

                
            }

        }

    }



    【Blog】http://virusswb.cnblogs.com/

    【MSN】jorden008@hotmail.com

    【说明】转载请标明出处,谢谢

    反馈文章质量,你可以通过快速通道评论:

  • 相关阅读:
    Powered by .NET Core 进展0815:第5次发布尝试(Windows部署)团队
    峰回路转:去掉 DbContextPool 后 Windows 上的 .NET Core 版博客表现出色团队
    做梦也没有想到:Windows 上的 .NET Core 版博客系统表现更糟糕团队
    全网最详细的zkfc启动以后,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)
    全网最详细的启动或格式化zkfc时出现java.net.NoRouteToHostException: No route to host ... Will not attempt to authenticate using SASL (unknown error)错误的解决办法(图文详解)
    全网最详细的HA集群的主节点之间的双active,双standby,active和standby之间切换的解决办法(图文详解)
    全网最详细的启动zkfc进程时,出现INFO zookeeper.ClientCnxn: Opening socket connection to server***/192.168.80.151:2181. Will not attempt to authenticate using SASL (unknown error)解决办法(图文详解)
    全网最详细的再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法(图文详解)
    执行bin/hdfs haadmin -transitionToActive nn1时出现,Automatic failover is enabled for NameNode at bigdata-pro02.kfk.com/192.168.80.152:8020 Refusing to manually manage HA state的解决办法(图文详解)
  • 原文地址:https://www.cnblogs.com/virusswb/p/1239783.html
Copyright © 2011-2022 走看看