上一页 下一页按钮 list<>没有内容时 下一页不能按了 当按buttn时索引会变化  求好朋友给个思路  

解决方案 »

  1.   

    判断list如果为空,下一页按钮的Enable设置为false.
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace DatagirdviewTurn
    {
        public partial class DatagirdvieTurnPages : UserControl
        {
            private int pageSize = 0;     // 每页显示行数   
            private int pageCount = 0;    // 页数=总记录数/每页显示行数   
            private int recordCount = 0;  // 总记录数   
            private int curPageNum = 0;   // 当前页号    
            private int curRowNum = 0;    // 当前记录行   
            private DataSet DS = new DataSet();
            private DataTable dtInfo = new DataTable();  
            public DatagirdvieTurnPages()
            {
                InitializeComponent();
              
            }
            private void InitDataSet()
            {
                pageSize = 10;                         // 设置页面行数     
                recordCount = dtInfo.Rows.Count;
                pageCount = (recordCount / pageSize);  // 计算出总页数  
                if ((recordCount % pageSize) > 0) { pageCount++; }
                curPageNum = 1;                        // 当前页数从1开始   
                curRowNum = 0;                         // 当前记录数从0开始     
                LoadData();
            }  
            private void LoadData()
            {
                int startPos = 0;                   // 当前页面开始记录行     
                int endPos = 0;                     // 当前页面结束记录行   
                DataTable dtTemp = dtInfo.Clone();  // 克隆DataTable结构框架     
                if (curPageNum == pageCount)
                {
                    endPos = recordCount;
                }
                else
                {
                    endPos = pageSize * curPageNum;
                }
                startPos = curRowNum;
                label1.Text = string.Format("第{0}页/共{1}页", curPageNum, pageCount);        // 从元数据源复制记录行    
                for (int i = startPos; i < endPos; i++)
                {
                    dtTemp.ImportRow(dtInfo.Rows[i]);
                    curRowNum++;
                }            dataGridView1.DataSource = dtTemp;
            }        private void DatagirdvieTurnPages_Load(object sender, EventArgs e)
            {
             
               
            }
            /// <summary>
            /// 初始化
            /// </summary>
            public void InitSys(DataTable Dt_Table)
            {
                if (Dt_Table.Rows.Count!=0)
                {
                    dtInfo = Dt_Table;
                    InitDataSet(); 
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                switch (((Button)sender).Text)
                {
                    case "上一页":
                        curPageNum--;
                        if (curPageNum <= 0)
                        {
                            curPageNum = 0;
                            MessageBox.Show("已经是第一页,请点击“下一页”查看!");
                            return;
                        }
                        curRowNum = pageSize * (curPageNum - 1);
                        LoadData();
                        break;
                    case "下一页":
                        curPageNum++;
                        if (curPageNum > pageCount)
                        {
                            curPageNum = pageCount;
                            MessageBox.Show("已经是最后一页,请点击“上一页”查看!");
                            return;
                        }
                        curRowNum = pageSize * (curPageNum - 1);
                        LoadData();
                        break;
                
                    default:
                        break;
                }  
            }        private void button2_Click(object sender, EventArgs e)
            {
                switch (((Button)sender).Text)
                {
                    case "上一页":
                        curPageNum--;
                        if (curPageNum <= 0)
                        {
                            curPageNum = 0;
                            MessageBox.Show("已经是第一页,请点击“下一页”查看!");
                            return;
                        }
                        curRowNum = pageSize * (curPageNum - 1);
                        LoadData();
                        break;
                    case "下一页":
                        curPageNum++;
                        if (curPageNum > pageCount)
                        {
                            curPageNum = pageCount;
                            MessageBox.Show("已经是最后一页,请点击“上一页”查看!");
                            return;
                        }
                        curRowNum = pageSize * (curPageNum - 1);
                        LoadData();
                        break;
                
                    default:
                        break;
                }  
            }    // 三个按钮的事件   
        }
    }
      

  3.   


      private int m_CurrentPage = 0;//当前页        private int m_PagesCount = 0;//页码总数        private List<string> ss = new List<string>();        /// <summary>
            /// 下一页
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnNext_Click(object sender, EventArgs e)
            {
                m_CurrentPage += 1;
                if (m_CurrentPage == m_PagesCount)
                {
                    this.btnNext.Enabled = false;
                }
            }
      

  4.   

    谢谢楼上的好朋友们  
    声明一个全局变量 int index=0;
    然后在btn事件 index++ 或index--    index是list集合的索引就可以了
      

  5.   

     int index = 0;
    List<PersonInfo> lst = new List<PersonInfo>();
    private void btnNext_Click(object sender, EventArgs e)
            {
                index++;
                PersonInfo pe = lst[index];
               // MessageBox.Show(p.Email,index.ToString());
                txtName.Text = pe.Name;
                txtAge.Text = pe.Age.ToString(); 
                txtAddress.Text = pe.Address;
                txtEmail.Text = pe.Email;
                txtSex.Text = pe.Sex;  
            }
    新手代码写的有点乱套  哈哈