上一页 下一页按钮 list<>没有内容时 下一页不能按了 当按buttn时索引会变化 求好朋友给个思路
解决方案 »
- 请问ESQL能否进行多表查询?
- help!!!给40分,这样插入数据错在哪?为什么插不入数据库?
- 如何点击确定和取消后关闭窗口
- Rows[0]["cinvcode"]这种格式来两次就不行了
- 怎样用存储过程执行应用程序
- 关于GridView中删除,更新的问题!如何取数据库里的KEY,这个KEY不在GridView中显示.
- Socket编程时候能不能用本网段的广播地址给网内的其他IP发送数据?
- picturebox中加载了一个图片,我想把这个图片用代码更新,可是运行这段代码时说图片正在使用,请问怎么解决.谢谢
- 自定义控件问题,请指教。
- 我买了些实例项目的程序书,但都是VB,VC,DELPHI 的,就是没有.NET的,谁能给我个.NET的实例程序啊,先谢谢了
- Form之间传值问题
- C# USB通讯
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;
}
} // 三个按钮的事件
}
}
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;
}
}
声明一个全局变量 int index=0;
然后在btn事件 index++ 或index-- index是list集合的索引就可以了
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;
}
新手代码写的有点乱套 哈哈