当前位置:  编程技术>.net/c#/asp.net

asp.net aspnetpager控件分页统计数据不准确的解决方法

    来源: 互联网  发布时间:2014-08-30

    本文导语:  用asp.net的aspnetpager控件实现的分页代码,出现统计数据与实际不符的问题。 原因在于以前都是在页数方面直接用数字写进去,其实应该写成anPager.PageSize=10;的形式,这样的话,统计数字就与实际相符了。 以下是修改后的正确...

用asp.net的aspnetpager控件实现的分页代码,出现统计数据与实际不符的问题。
原因在于以前都是在页数方面直接用数字写进去,其实应该写成anPager.PageSize=10;的形式,这样的话,统计数字就与实际相符了。
以下是修改后的正确代码,供大家学习参考。
 

代码示例:

///
/// 需要分页时使用,根据参数和ConditionExpress获取DataTable
///
/// 表名
/// 字段名集合,用逗号分开
/// 排序字段,用于统计有多少条记录
/// 是否倒序
/// 自增字段名
/// 当前页
/// 页大小
/// 总记录数
/// 获取到的DataTable
public static DataTable GetDataTable(string _tableName, string _fieldNames, string _OrderColumn, bool IsDesc, string _indexColumn, int _currentPage, int pageSize, string conditionExpress, ref int _rowsCount)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
string whereStr = " where 1=1 ";
string sort = IsDesc ? " desc" : " asc";

string sqlStr = " from " + _tableName;
//排序字段
string orderStr = " order by " + _OrderColumn + sort;
if (_OrderColumn != _indexColumn)
orderStr += "," + _indexColumn + sort;
if (conditionExpress != string.Empty)
{
whereStr += conditionExpress;
}
sqlStr += whereStr;

//取得符合条件的数据总数
SqlCommand cmd = new SqlCommand("select count(" + _OrderColumn + ") " + sqlStr, conn);
conn.Open();
try
{
_rowsCount = (int)cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}

if (_currentPage > _rowsCount) _currentPage = _rowsCount;

if (_currentPage > 1)
{
if (IsDesc)
sqlStr += " and " + _OrderColumn + " < (select MIN(" + _OrderColumn + ") from ";
else
sqlStr += " and " + _OrderColumn + " > (select MAX(" + _OrderColumn + ") from ";
sqlStr += "(select top " + (pageSize * (_currentPage - 1)) + " " + _OrderColumn + " from " + _tableName + whereStr + orderStr + ") as t)";
}
sqlStr = "select top " + pageSize + " " + _fieldNames + sqlStr + orderStr;

try
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, conn);
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception EX)
{
throw new Exception(EX.Message);
}
}
}

调用示例:
 

代码示例:
private void bind()
{
int rowCount = 1;
string wherestr = string.Empty;
//设置分页
anPager.AlwaysShow = true;
anPager.PageSize = 10;
this.rptdictionary.DataSource = GetDataTable(
"dictionary_Toysgogo_",
"[id_dictionary_],[namecn_dictionary_],[nameen_dictionary_],[point_dictionary_]",
"[id_dictionary_]",
true,
"[id_dictionary_]",
this.anPager.CurrentPageIndex,
anPager.PageSize,
wherestr,
ref rowCount
);
this.anPager.RecordCount = rowCount;
this.rptdictionary.DataBind();
}

分页显示:
 

代码示例:
//分页切换
protected void anPager_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
this.anPager.CurrentPageIndex = e.NewPageIndex;
this.tbxType.Text = this.tbxType.Text;
bind();
}

    
 
 

您可能感兴趣的文章:

  • asp.net Control控件常用的属性与方法
  • ASP.NET 页面中加添加用户控件的写法
  • asp.net Google样式分页控件用法
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢? iis7站长之家
  • asp控件和html控件的概念区别
  • Asp.Net其他页面如何调用Web用户控件写的分页
  • asp.net动态添加非标准html控件的方法
  • asp.net MVC进阶学习---HtmlHelper之GridView控件拓展(一)
  • asp.net 用户控件中图片与样式引用的问题
  • asp.net ajax时用alert弹出对话框与验证控件冲突的解决方法
  • 把某个asp.net 控件替换成自定义控件的方法
  • asp.net Textbox服务器控件的技巧分享(图文)
  • asp.net(c#版)添加DataRow数据列到DataTable控件
  • asp.net 动态创建控件的演示实例
  • asp.net服务器控件调整技巧
  • asp.net实例代码 在DataGrid控件中显示数据
  • asp.net Textbox服务器控件的例子
  • 学习asp.net动态添加控件的方法
  • asp.net MVC进阶学习---HtmlHelper控件解析(四)
  • asp.net 动态添加多个用户控件(实例代码)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.
  • asp与Jsp可否在iis中共存的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3