110,475
社区成员
发帖
与我相关
我的任务
分享
private void PageDataGridview_DataSourceChanged(object sender, System.EventArgs e)
{
DataGridView dgv = (DataGridView)sender;
bool filledFlag = false;
if (((DataTable)dgv.DataSource).Rows.Count > 0) {
ToltalPage = 1;
NowPage = 1;
if (PageSize == 0) {
return;
}
DataTable table = (DataTable)dgv.DataSource;
int tol = table.Rows.Count;
int temptolpage = Convert.ToInt32(tol / PageSize);
if (temptolpage * PageSize >= tol) {
ToltalPage = temptolpage;
} else {
ToltalPage = temptolpage + 1;
}
nowrowno = 0;
ds.Tables.Clear();
//建立所有分页,并添加到数据集 ds
for (int tbcount = 0; tbcount <= ToltalPage - 1; tbcount++) {
DataTable tempTable = new DataTable();
var _with1 = ((DataTable)dgv.DataSource);
//为 tempTable 添加列名称
for (int i = 0; i <= _with1.Columns.Count - 1; i++) {
DataColumn col = new DataColumn();
col.ColumnName = _with1.Columns(i).ColumnName;
tempTable.Columns.Add(col);
}
//创建分页表 tempTable
for (int s = 1; s <= PageSize; s++) {
if (nowrowno == _with1.Rows.Count) {
break; // TODO: might not be correct. Was : Exit For
}
tempTable.ImportRow(_with1.Rows(nowrowno));
nowrowno += 1;
}
ds.Tables.Add(tempTable);
//将分页添加到数据集
}
var _with2 = ((DataTable)dgv.DataSource);
//把 ds 中第一个表复制到 dgv
if (ds.Tables.Count > 0) {
_with2.Rows.Clear();
foreach (DataRow row in ds.Tables(0).Rows) {
_with2.ImportRow(row);
}
}
}
}
public void UpData()
{
this.DataSourceChanged -= PageDataGridview_DataSourceChanged;
}
public void EndUpData()
{
this.DataSourceChanged += PageDataGridview_DataSourceChanged;
PageDataGridview_DataSourceChanged(null, null);//会引起未实例化错误
}