GridView分页问题????? 不想用GridView自代的分页。想自己写一个,在GridView的基础上自己手写分页。哪个有原代码发来看一下,或者有类似的参考一下也行。多谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充一点。我用的是AspNetPager #region 分页方法 多个表联合,PK_ID不唯一时,要指定主键 /// <summary> /// 分页方法 多个表联合,PK_ID不唯一时,要指定主键 /// </summary> /// <param name="Index">开始页</param> /// <param name="Size">页大小</param> /// <param name="Rows">总行数</param> /// <param name="Tabs">要查询的表</param> /// <param name="Display">要显示的内容</param> /// <param name="Condition">搜条件</param> /// <param name="OrderBy">排序</param> /// <param name="KeyWord">关键字,查询时的唯一标记</param> /// <returns>返回一张表</returns> public static DataTable RunPagination(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy, string KeyWord) { Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder(); sql.Append("Select Top " + Size.ToString()); sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1) { sql.Append(" And " + KeyWord + " Not In (Select Top "); sql.Append(Convert.ToString((Index - 1) * Size) + " " + KeyWord + " From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "") { sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy); } else { sql.Append(" )"); } } else if (OrderBy != "") { sql.Append(" Order By " + OrderBy); } try { return ExecuteDataTable(sql.ToString()); } catch { return null; } } #endregion #region 分页方法 单表,主键唯一时 即,只有一个PK_ID /// <summary> /// 分页方法 单表,主键唯一时 即,只有一个PK_ID /// </summary> /// <param name="Index">开始页</param> /// <param name="Size">页大小</param> /// <param name="Rows">总行数</param> /// <param name="Tabs">要查询的表</param> /// <param name="Display">要显示的内容</param> /// <param name="Condition">搜条件</param> /// <param name="OrderBy">排序</param> /// <returns>返回一张表</returns> public static DataTable RunPagination(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy) { Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder(); sql.Append("Select Top " + Size.ToString()); sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1) { sql.Append(" And PK_ID Not In (Select Top "); sql.Append(Convert.ToString((Index - 1) * Size) + " PK_ID From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "") { sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy); } else { sql.Append(" )"); } } else if (OrderBy != "") { sql.Append(" Order By " + OrderBy); } //try //{ return ExecuteDataTable(sql.ToString()); //} //catch //{ // return null; //} } public static DataTable RunPaginationP(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy, string PKID) { Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder(); sql.Append("Select Top " + Size.ToString()); sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1) { sql.Append(" And " + PKID + " Not In (Select Top "); sql.Append(Convert.ToString((Index - 1) * Size) + " " + PKID + " From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "") { sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy); } else { sql.Append(" )"); } } else if (OrderBy != "") { sql.Append(" Order By " + OrderBy); } //try //{ return ExecuteDataTable(sql.ToString()); //} //catch //{ // return null; //} } #endregion /// <summary> /// 提取SysHelp表里的数据并且绑定到GridView中,返回一个DataTable /// </summary> /// <param name="Index">开始页</param> /// <param name="Size">页大小</param> /// <param name="Rows">总行数</param> /// <param name="TableName">要查询的表</param> /// <param name="Display">要显示的内容</param> /// <returns>返回一张表</returns> public static DataTable GetSysHelp(int Index, int Size, out int Rows, string TableName, string Display, string SysName) { return SQLHelper.RunPagination(Index, Size, out Rows, TableName, Display, " and SysName='" + SysName + "'", " Createtime DESC"); } public static string LinkString(string p_FileName,int p_GroupLength,int p_RecordCount,int p_CurrPage,int p_PageCount) { int page = p_CurrPage;//当前页 int gNum = p_GroupLength; //组元素数 int recordCount = p_RecordCount;//记录总数 int gSum = (gNum>0)?(Convert.ToInt32(Math.Ceiling(p_PageCount*1.0/gNum))):0;//组数 int pSum = p_PageCount;//总页数 string fileName = (p_FileName.IndexOf("?")>0)?(p_FileName + "&"):(p_FileName + "?"); string str="共 "+p_RecordCount+" 项 "; if (recordCount == 0) { return str+"首页 上一页 下一页 尾页"; } if (page==1) { str += "首页 上一页 "; } else { str += "<a href='"+fileName+"page=1' class='down' title='首页'>首页</a> <a href='"+fileName+"page="+(page-1)+"' class='down' title='上一页'>上一页</a> "; } str += "<span class='down'>"; for (int j = 1;j<=gSum;j++) { if (page>=((j-1)*gNum+1) && page<=(j*gNum) ) { if (page>gNum) { str += "│<a href='"+fileName+"page="+((j-2)*gNum+1)+"' class='down' title='前"+gNum.ToString()+"页'>...</a>"; } for (int p=(j-1)*gNum+1;p<=(j*gNum);p++) { if (p==page) str += "│<b>" +p.ToString()+"</b>"; else { if (p <= (j*gNum) && p<=pSum) str += "│<a href='"+fileName+"page="+p+"' class='down' title='第"+p.ToString()+"页'>"+p.ToString()+"</a>"; } } if ( page <= ((gSum-1)*gNum)) { str += "│<a href='"+fileName+"page="+(j*gNum+1)+"' class='down' title='后"+gNum.ToString()+"页'>...</a>│"; } else { str +="│"; } } } str += "</span>"; if (page==pSum) { str += " 下一页 尾页"; } else { str += " <a href='"+fileName+"page="+(page+1)+"' class='down' title='下一页'>"+"下一页"+"</a> <a href='"+fileName+"page="+pSum.ToString()+"' class='down' title='尾页'>尾页</a>"; } return str; } 用aspnetpager和gridview控件没关,主要是datasource设置 假设已经把数据读取到DataSet类的ds中:protected void bind(){ AspNetPager1.RecordCount = ds.Tables[0].Rows.Count; PagedDataSource pd = new PagedDataSource(); pd.DataSource = ds.Tables[0].DefaultView; pd.AllowPaging = true; pd.PageSize = AspNetPager1.PageSize; pd.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1; GridView1.DataSource=ds; GridView1.DataBind();}protected void AspNetPager1_PageChanged(object sender, EventArgs e){ bind();} 写 上面那行写错了:GridView1.DataSource=ds;应该是:GridView1.DataSource=pd; 问个大家都不怎么注意的Session问题 简单的添加用户程序 请教一个关于datalist中点击删除按钮的完整过程 一百多万条数据的数据库如何判断重复? 怎么上传一个固定地址的文件(菜题) 请问 asp.net 1.1 中 如何 用 vb.net 获得 磁盘的序列号 关于编译器错误 的问题,请诸位大人请教!!!! asp.net与sqlserver 连接的问题。请各位大师帮忙,在线等候 select from tb where 条件1或条件2 关于水晶报表在web上打印的问题,谢谢! 两个GridView切换时怎样使当前页相同? 还是文本换行的问题?
/// <summary>
/// 分页方法 多个表联合,PK_ID不唯一时,要指定主键
/// </summary>
/// <param name="Index">开始页</param>
/// <param name="Size">页大小</param>
/// <param name="Rows">总行数</param>
/// <param name="Tabs">要查询的表</param>
/// <param name="Display">要显示的内容</param>
/// <param name="Condition">搜条件</param>
/// <param name="OrderBy">排序</param>
/// <param name="KeyWord">关键字,查询时的唯一标记</param>
/// <returns>返回一张表</returns>
public static DataTable RunPagination(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy, string KeyWord)
{
Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder();
sql.Append("Select Top " + Size.ToString());
sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1)
{
sql.Append(" And " + KeyWord + " Not In (Select Top ");
sql.Append(Convert.ToString((Index - 1) * Size) + " " + KeyWord + " From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy);
}
else
{
sql.Append(" )");
}
}
else if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy);
} try
{
return ExecuteDataTable(sql.ToString());
}
catch
{
return null;
}
}
#endregion #region 分页方法 单表,主键唯一时 即,只有一个PK_ID
/// <summary>
/// 分页方法 单表,主键唯一时 即,只有一个PK_ID
/// </summary>
/// <param name="Index">开始页</param>
/// <param name="Size">页大小</param>
/// <param name="Rows">总行数</param>
/// <param name="Tabs">要查询的表</param>
/// <param name="Display">要显示的内容</param>
/// <param name="Condition">搜条件</param>
/// <param name="OrderBy">排序</param>
/// <returns>返回一张表</returns>
public static DataTable RunPagination(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy)
{
Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder();
sql.Append("Select Top " + Size.ToString());
sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1)
{
sql.Append(" And PK_ID Not In (Select Top ");
sql.Append(Convert.ToString((Index - 1) * Size) + " PK_ID From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy);
}
else
{
sql.Append(" )");
}
}
else if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy);
} //try
//{
return ExecuteDataTable(sql.ToString());
//}
//catch
//{
// return null;
//}
}
public static DataTable RunPaginationP(int Index, int Size, out int Rows, string Tabs, string Display, string Condition, string OrderBy, string PKID)
{
Rows = (int)ExecuteScalar("Select Count(*) From " + Tabs + " Where 1=1 " + Condition); StringBuilder sql = new StringBuilder();
sql.Append("Select Top " + Size.ToString());
sql.Append(" " + Display + " From " + Tabs + " Where 1=1 " + Condition); if (Index > 1)
{
sql.Append(" And " + PKID + " Not In (Select Top ");
sql.Append(Convert.ToString((Index - 1) * Size) + " " + PKID + " From " + Tabs + " Where 1=1 " + Condition); if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy + " )Order By " + OrderBy);
}
else
{
sql.Append(" )");
}
}
else if (OrderBy != "")
{
sql.Append(" Order By " + OrderBy);
} //try
//{
return ExecuteDataTable(sql.ToString());
//}
//catch
//{
// return null;
//}
}
#endregion
/// 提取SysHelp表里的数据并且绑定到GridView中,返回一个DataTable
/// </summary>
/// <param name="Index">开始页</param>
/// <param name="Size">页大小</param>
/// <param name="Rows">总行数</param>
/// <param name="TableName">要查询的表</param>
/// <param name="Display">要显示的内容</param>
/// <returns>返回一张表</returns>
public static DataTable GetSysHelp(int Index, int Size, out int Rows, string TableName, string Display, string SysName)
{
return SQLHelper.RunPagination(Index, Size, out Rows, TableName, Display, " and SysName='" + SysName + "'", " Createtime DESC");
}
{
int page = p_CurrPage;//当前页
int gNum = p_GroupLength; //组元素数
int recordCount = p_RecordCount;//记录总数
int gSum = (gNum>0)?(Convert.ToInt32(Math.Ceiling(p_PageCount*1.0/gNum))):0;//组数
int pSum = p_PageCount;//总页数
string fileName = (p_FileName.IndexOf("?")>0)?(p_FileName + "&"):(p_FileName + "?");
string str="共 "+p_RecordCount+" 项 ";
if (recordCount == 0)
{
return str+"首页 上一页 下一页 尾页";
} if (page==1)
{
str += "首页 上一页 ";
}
else
{
str += "<a href='"+fileName+"page=1' class='down' title='首页'>首页</a> <a href='"+fileName+"page="+(page-1)+"' class='down' title='上一页'>上一页</a> ";
} str += "<span class='down'>"; for (int j = 1;j<=gSum;j++)
{
if (page>=((j-1)*gNum+1) && page<=(j*gNum) )
{
if (page>gNum)
{
str += "│<a href='"+fileName+"page="+((j-2)*gNum+1)+"' class='down' title='前"+gNum.ToString()+"页'>...</a>";
} for (int p=(j-1)*gNum+1;p<=(j*gNum);p++)
{
if (p==page)
str += "│<b>" +p.ToString()+"</b>";
else
{
if (p <= (j*gNum) && p<=pSum)
str += "│<a href='"+fileName+"page="+p+"' class='down' title='第"+p.ToString()+"页'>"+p.ToString()+"</a>";
}
} if ( page <= ((gSum-1)*gNum))
{
str += "│<a href='"+fileName+"page="+(j*gNum+1)+"' class='down' title='后"+gNum.ToString()+"页'>...</a>│";
}
else
{
str +="│";
}
}
} str += "</span>";
if (page==pSum)
{
str += " 下一页 尾页";
}
else
{
str += " <a href='"+fileName+"page="+(page+1)+"' class='down' title='下一页'>"+"下一页"+"</a> <a href='"+fileName+"page="+pSum.ToString()+"' class='down' title='尾页'>尾页</a>";
} return str;
}
{
AspNetPager1.RecordCount = ds.Tables[0].Rows.Count;
PagedDataSource pd = new PagedDataSource();
pd.DataSource = ds.Tables[0].DefaultView;
pd.AllowPaging = true;
pd.PageSize = AspNetPager1.PageSize;
pd.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
GridView1.DataSource=ds;
GridView1.DataBind();
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
bind();
} 写