Fork me on GitHub

AspNetPager demo - Customized rendering

This sample demonstrates how to customize data rendering logic without data bound control.

Order IDOrder DateCustomer IDEmployee ID
110776/5/1996RATTC1
110766/5/1996BONAP4
110756/5/1996RICSU8
110746/5/1996SIMOB7
110736/4/1996PERIC2
110726/4/1996ERNSH4
110716/4/1996LILAS1
110706/4/1996LEHMS2
110696/3/1996TORTU1
110686/3/1996QUEEN8

CustomRendering.aspx:

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

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();
    }
}