如题:我自己定义的Gridwiew也就是说绑定的数据源DataSet是自己定义的(不是查询数据库生成的),我要将 AspNetPager绑定到GridView中。
当DataSet是查询数据库生成的时候很简单:DataSet mySet = new DataSet();
mySet = CurrentCon.GetDsSetPaging(sql, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "temptbl");
gridView.DataSource = mySet.Tables["temptbl"];CurrentCon.GetDsSetPaging方法: public static DataSet GetDsSetPaging(string Sql,int startRecord,int MaxRecord,string srcTable)
{
DataSet Ds = new DataSet();
try
{
OleDbDataAdapter DA = new OleDbDataAdapter(Sql, GetConnection());
DA.Fill(Ds, startRecord, MaxRecord, srcTable);
}
catch (System.Exception e)
{
throw new System.Exception(e.Message.ToString(), e);
}
return Ds;
}
这样就可以实现,这里关键的是MYset是用SQL查询出来的,下面 我自己定义的DataSet怎么实现这个功能呢!
当DataSet是查询数据库生成的时候很简单:DataSet mySet = new DataSet();
mySet = CurrentCon.GetDsSetPaging(sql, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "temptbl");
gridView.DataSource = mySet.Tables["temptbl"];CurrentCon.GetDsSetPaging方法: public static DataSet GetDsSetPaging(string Sql,int startRecord,int MaxRecord,string srcTable)
{
DataSet Ds = new DataSet();
try
{
OleDbDataAdapter DA = new OleDbDataAdapter(Sql, GetConnection());
DA.Fill(Ds, startRecord, MaxRecord, srcTable);
}
catch (System.Exception e)
{
throw new System.Exception(e.Message.ToString(), e);
}
return Ds;
}
这样就可以实现,这里关键的是MYset是用SQL查询出来的,下面 我自己定义的DataSet怎么实现这个功能呢!
pds.AllowPaging = true;
pds.DataSource = table.DefaultView;
pds.PageSize = AspNetPager1.PageSize;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
不过GridView好像也可以实现分页的 绑定数据源后 他可以添加删除 修改更能 你看看那下面有没有分页方面的功能
不过还是谢谢,我自己重写了一个利用DataSet分页的方法。问题解决 在这里跟大家分享://参数名称oldDataSet是我在前台拼接的,pageindex是显示的第几页,startRecord开始的数目,MaxRecord每页最大显示的数目,rowName下面重新命名table的名字
public static DataSet DsToNewDsSetPaging(DataSet oldDataSet, int pageindex, int startRecord, int MaxRecord, string[] rowName)
{
DataSet newDataSet = new DataSet();
DataTable table = new DataTable();
try
{
int pageCount;
int oldLen = oldDataSet.Tables[0].Rows.Count;
pageCount = oldLen / MaxRecord + 1;
int oldCum = oldDataSet.Tables[0].Columns.Count;
for (int j = 0; j < oldCum; j++)
{
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = rowName[j];
table.Columns.Add(column);
}
if (pageindex < pageCount)
{
for (int i = startRecord * (pageindex - 1); i < MaxRecord; i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
else
{
for (int i = startRecord * (pageindex - 1); i < (oldLen % MaxRecord) + startRecord * (pageindex - 1); i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
}
catch (Exception ee)
{
throw new System.Exception(ee.Message.ToString(), ee);
}
return newDataSet;
}
这个是就根据前台自由拼接的DataSet作为数据源实现分页的代码
不过还是谢谢,我自己重写了一个利用DataSet分页的方法。问题解决 在这里跟大家分享://参数名称oldDataSet是我在前台拼接的,pageindex是显示的第几页,startRecord开始的数目,MaxRecord每页最大显示的数目,rowName下面重新命名table的名字
public static DataSet DsToNewDsSetPaging(DataSet oldDataSet, int pageindex, int startRecord, int MaxRecord, string[] rowName)
{
DataSet newDataSet = new DataSet();
DataTable table = new DataTable();
try
{
int pageCount;
int oldLen = oldDataSet.Tables[0].Rows.Count;
pageCount = oldLen / MaxRecord + 1;
int oldCum = oldDataSet.Tables[0].Columns.Count;
for (int j = 0; j < oldCum; j++)
{
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = rowName[j];
table.Columns.Add(column);
}
if (pageindex < pageCount)
{
for (int i = startRecord * (pageindex - 1); i < MaxRecord; i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
else
{
for (int i = startRecord * (pageindex - 1); i < (oldLen % MaxRecord) + startRecord * (pageindex - 1); i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
}
catch (Exception ee)
{
throw new System.Exception(ee.Message.ToString(), ee);
}
return newDataSet;
}
这个是就根据前台自由拼接的DataSet作为数据源实现分页的代码
不过还是谢谢,我自己重写了一个利用DataSet分页的方法。问题解决 在这里跟大家分享://参数名称oldDataSet是我在前台拼接的,pageindex是显示的第几页,startRecord开始的数目,MaxRecord每页最大显示的数目,rowName下面重新命名table的名字
public static DataSet DsToNewDsSetPaging(DataSet oldDataSet, int pageindex, int startRecord, int MaxRecord, string[] rowName)
{
DataSet newDataSet = new DataSet();
DataTable table = new DataTable();
try
{
int pageCount;
int oldLen = oldDataSet.Tables[0].Rows.Count;
pageCount = oldLen / MaxRecord + 1;
int oldCum = oldDataSet.Tables[0].Columns.Count;
for (int j = 0; j < oldCum; j++)
{
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = rowName[j];
table.Columns.Add(column);
}
if (pageindex < pageCount)
{
for (int i = startRecord * (pageindex - 1); i < MaxRecord; i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
else
{
for (int i = startRecord * (pageindex - 1); i < (oldLen % MaxRecord) + startRecord * (pageindex - 1); i++)
{
DataRow row = table.NewRow();
for (int t = 0; t < oldCum; t++)
{
row[t] = oldDataSet.Tables[0].Rows[i][t].ToString();
}
table.Rows.Add(row);
}
newDataSet.Tables.Add(table);
}
}
catch (Exception ee)
{
throw new System.Exception(ee.Message.ToString(), ee);
}
return newDataSet;
}
这个是就根据前台自由拼接的DataSet作为数据源实现分页的代码