Fork me on GitHub

AspNetPager 示例 - 自定义数据显示逻辑

该示例演示如何在自定义数据呈现逻辑而不使用数据绑定控件时使用AspNetPager分页控件。
Order IDOrder DateCustomer IDEmployee ID
110771996/6/5RATTC1
110761996/6/5BONAP4
110751996/6/5RICSU8
110741996/6/5SIMOB7
110731996/6/4PERIC2
110721996/6/4ERNSH4
110711996/6/4LILAS1
110701996/6/4LEHMS2
110691996/6/3TORTU1
110681996/6/3QUEEN8

CustomRendering.aspx:

<%@ Page Language="C#" AutoEventWireup="true" MetaDescription="该示例演示如何在自定义数据呈现逻辑而不使用数据绑定控件时使用AspNetPager分页控件。" Inherits="CustomRendering_Default" MasterPageFile="AspNetPager.master" Title="自定义数据显示逻辑" Codebehind="CustomRendering.aspx.cs" %>

<asp:Content runat="server" ID="content1" ContentPlaceHolderID="main">
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
    <webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged">
    </webdiyer:AspNetPager>

</asp:Content>

CustomRendering.aspx.cs:

using System;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Web.UI;

public partial class CustomRendering_Default : Page
{
    OleDbConnection conn;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data/northwnd.mdb;"));
            OleDbCommand cmd = new OleDbCommand("select count(*) from orders", conn);
            if (conn.State != ConnectionState.Open)
                conn.Open();
            AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
            conn.Close();
            bindData();
        }
    }

    void bindData()
    {
        conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data/northwnd.mdb;"));
        OleDbDataAdapter cmd = new OleDbDataAdapter("select orderid,orderdate,customerid,employeeID from orders order by orderid desc", conn);
        DataTable tbl = new DataTable();
        cmd.Fill(tbl);
        int startIndex = AspNetPager1.StartRecordIndex;
        StringBuilder sb = new StringBuilder();
        sb.Append("<table width=\"100%\" border=\"0\"><tr><th>Order ID</th><th>Order Date</th><th>Customer ID</th><th>Employee ID</th></tr>");
        DataRow row;
        while (startIndex <= AspNetPager1.EndRecordIndex)
        {
            row = tbl.Rows[startIndex-1];
            sb.Append("<tr><td>");
            sb.Append(row[0]).Append("</td><td>");
            sb.AppendFormat("{0:d}",row[1]).Append("</td><td>");
            sb.Append(row[2]).Append("</td><td>");
            sb.Append(row[3]).Append("</td><td></tr>");
            startIndex++;
        }
        sb.Append("</table>");
        PlaceHolder1.Controls.Add(new LiteralControl(sb.ToString()));
    }

    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        bindData();
    }
}