超级简单:在你的ASP.NET页面自定义列表和分页

  • 时间:
  • 浏览:2
  • 来源:大发彩神安卓下载—大发彩神官方下载

   首先,大家时需去选着的列表记录,通常使用的分页技术是大家将所有的记录上放二个 dataset,否则 使用PagedDataSource来显示适当的页。累似 技术主要不好的地方是在内存中存储了所有的记录,而在页面上仅仅显示其中的累似 记录。每次你点击页码,每次它都将查询了所有的记录。为了克服累似 头痛的大问题,我将有效地使用SQL Server 4005的ROW_NUMBER 功能。

      objReader.NextResult();

        
int intTotalRecords = 0;

        
if (objReader.Read()) {

            intTotalRecords 
=int.Parse(objReader[0].ToString());

        }

    第二个 结果集是第一页的记录,第3个结果集是记录的总和。

参考原文:http://www.codeproject.com/KB/aspnet/custompagingandlisting.aspx

     protected void lnkPaging_Click(object sender, EventArgs e)

        {

            DoSearch(
int.Parse(txtHidPageIndex.Value));

        }

    现在大家在数据库中准备好存储过程,过后现在开始了了实现大家的列表和分页措施。 为了显示列表,我将不使用任何数据源控件,我将直接在aspx页面上输出。对于累似 ,在后台代码中,大家首先定义二个 字符串。

    累似 ,可能大家将 @intCurrentPage设置为1 ,将@intRecordPerPage设置为10,结果可能是1到10的记录。 累似 存储过程连接到AdventureWorks数据库,从Production.Product 查询记录。

     在创建列表的HTML事先,我将它分配给二个 保护的变量strList。

    @intCurrentPage int - 累似 参数用来表示当前页码。

  link button (lnkPaging) 的后台代码如下:

   

    写二个 javascript函数来接受页码和将页码以及将它上放隐藏字段中。 在此事先,执行link button的回传,二个 大家能执行服务端的操作。该链接按钮的Click事件要能发起的ASP.NET doPostBack措施。

  

 AdventureWorks数据库:http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004

     可能使用累似 措施,你不时需任何的数据源控件。大家创建和管理列表和分页的HTML。这项技术在你的页面上将我能 带来最大的灵活性。

     字符串变量strList 用来保存记录的列表的HTML,strPages 用来保存分页的HTML。首先,我时需得到页的索引,我将页的索引存上放隐藏的文本字段中(txtHidPageIndex)。默认,第一页将被显示。大家将用户点击的页索引,将它存储在累似 隐藏字段中 ,服务端能访问累似 隐藏字段来获得页码。大家时需二个 服务端控件来监听页面的点击。 我在页面加上上二个 link button控件(lnkPaging)来初始化clicking,它要能完成累似 服务端的动作。

    现在完成大家主要要做的事情:怎么去分页。对于分页,首先大家时需所有记录的总数量。能从reader中得到累似 数量。

     现在大家时需去找每一页的过后现在开始了了的每根记录和最后的每根记录。大家假设显示在页码列表中所含5页。 否则 用户能获得First和Previous按钮,接下来是下5页的页码按钮,还有Next和Last按钮。

 代码:/Files/zhuqil/custompagingandlisting.rar

本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/01/02/custompagingandlisting.html,如需转载请自行联系原作者

connectionString ="Data Source=[SERVER NAME];

   Initial Catalog
=AdventureWorks;User ID=[USERNAME]; Password=[PASSWORD]/>

     下面的片段显示怎么将记录填充到reader中。

     现在,intTotalRecords变量所含了记录的总数量。第3个任务是去找页码数量。如下所示:

    现在,大家要能通过页的索引和剩余的记录数目来隐藏和禁用First, Previous, Next, 和Last button。

   protected string strList; // to set the HTML of the listing

   protected string strPages;//to set the HTML of paging

       我设置一页显示10条记录。可能你想让用户自定义每页的记录数量,在你的网站中,你能加上二个 选项设置值。用累似 值来作为每页显示的记录数量。现在,大家在reader可能有了结果。创建二个 StringBuilder 来存储创建的 HTML 。

     累似 例子展示怎么使用SQL Server 4005 的ROW_NUMBER功能去分页,以及通过在code-behind中自定义HTML输出比较好看的界面。

    现在,大家能加上二个 页数,它从第一页到最后一页。 

    在实现了分页的HTML事先,在protected类型的字符串strPages中存储StringBuilder类型的值。分页而是而是可能页数超过一页,就仅仅显示一页。

strList = sbHTML.ToString();

    在AdventureWorks 数据库中执行累似 存储过程,创建二个 连接字符串来连接AdventureWorks。

     通过传递:@intCurrentPage=1, @intRecordPerPage=10,执行上方的存储过程

    @intRecordPerPage int -  累似 参数用来得到一页中显示的记录数量。

function doPaging(intPageIndex)

{

    document.getElementById(
'txtHidPageIndex').value=intPageIndex;

    __doPostBack(
'lnkPaging','');

}

    大家将传递二个 参数,存储过程能查询特定的记录。