一个不错的分页控件

本文介绍了一款适用于Repeat和Datalist的高效分页控件,并提供了详细的实现步骤。从生成分页存储过程到添加dll引用,再到具体编码实践,帮助读者轻松掌握分页控件的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
一个不错分页控件,特别对于Repeat和Datalist
Body:
http://www.webdiyer.com/samples/datagrid.aspx提供了一个很好的分页控件
首先利用 http://www.webdiyer.com/utility/procgen.aspx生成一个需要用到的分页存储过程,然后在数据库里面建立这个存储过程,在vs2005里面添加引用aspnetpager.dll,然后参照 http://www.webdiyer.com/doc/Wuqi.Webdiyer.AspNetPager.html
完成编码.
Expires:
 
 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ITsolution.Config;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using System.Data.Common;

///使用到了企业程序库

public partial class Test : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetStoredProcCommand("生成的分页存储过程");
            db.AddInParameter(dbCommand, "pageindex", DbType.Int32, 1);
            db.AddInParameter(dbCommand, "pagesize", DbType.Int32, 1);
            db.AddInParameter(dbCommand, "docount", DbType.Boolean, true);
            Pager.RecordCount = (int)db.ExecuteScalar(dbCommand);
            BindData();

        }
    }

  网上收集的取过长字符串的方法
    public static string CutString(string inputString, int len)
    {

        ASCIIEncoding ascii = new ASCIIEncoding();
        int tempLen = 0;
        string tempString = "";
        byte[] s = ascii.GetBytes(inputString);
        for (int i = 0; i < s.Length; i++)
        {
            if ((int)s[i] == 63)
            {
                tempLen += 2;
            }
            else
            {
                tempLen += 1;
            }

            try
            {
                tempString += inputString.Substring(i, 1);
            }
            catch
            {
                break;
            }

            if (tempLen > len)
                break;
        }
        //如果截过则加上半个省略号
        byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
        if (mybyte.Length > len)
            tempString += "…";

        return tempString;
    }
    void BindData()
    {
        Database db = DatabaseFactory.CreateDatabase();
        DbCommand dbCommand = db.GetStoredProcCommand("生成的分页存储过程");
        db.AddInParameter(dbCommand, "pageindex", DbType.Int32, Pager.CurrentPageIndex);
        db.AddInParameter(dbCommand, "pagesize", DbType.Int32, Pager.PageSize);
        db.AddInParameter(dbCommand, "docount", DbType.Boolean, false);
        (DataList或Repeat控件Id).DataSource = db.ExecuteDataSet(dbCommand);
        (DataList或Repeat控件Id).DataBind();
        Pager.CustomInfoText = "记录总数:<font color=/"blue/"><b>" + Pager.RecordCount.ToString() + "</b></font>";
        Pager.CustomInfoText += " 总页数:<font color=/"blue/"><b>" + Pager.PageCount.ToString() + "</b></font>";
        Pager.CustomInfoText += " 当前页:<font color=/"red/"><b>" + Pager.CurrentPageIndex.ToString() + "</b></font>";
    }

    protected void AspNetPager1_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
    {
        Pager.CurrentPageIndex = e.NewPageIndex;
        BindData();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值