DataTable数据分页显示

<%@ WebHandler Language="C#" Class="DT" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;

public class DT : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {

        //1.填充DataTable
        DataTable table = new DataTable();
        SqlConnection conn = new SqlConnection("server=(local);database=Northwind; uid=sa;password=sa;");
        SqlDataAdapter adapter = new SqlDataAdapter("Select CustomerID,ContactName FROM Customers", conn);
        adapter.Fill(table);

        //2.获取分页数据
        DataTable newtable = Page(table, 3, 5);
        table = null;
        
        //3.显示
        foreach (DataRow item in newtable.Rows)
            context.Response.Write(item[0] + "," + item[1] + "<br/>");

    }

    public DataTable Page(DataTable table, int page_no, int page_size)
    {
        DataTable newtable = table.Clone();
        
        int startRow = (page_no - 1) * page_size;
        int endRow = table.Rows.Count > page_no * page_size - 1 ? page_no * page_size - 1 : table.Rows.Count;
        for (int i = startRow; i <= endRow; i++)
        {
            //newtable.Rows.Add(table.Rows[i]); //err: 该行已经属于另一个表
            newtable.Rows.Add(table.Rows[i].ItemArray);
        }

        return newtable;
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}


评论: 0 | 引用: 0 | 查看次数: 6126
发表评论
登录后再发表评论!