当前位置:编程学习 > C#/ASP.NET >>

怎么进行1,2,3,4,5,6,7这样的分页效果

首先,请不要推荐什么分页控件

正文:
void Pagging(int index)
        {
            PDS.DataSource = table.DefaultView;
            PDS.CurrentPageIndex = index;
            PDS.AllowPaging = true;
            PDS.PageSize = 50;
            rp.DataSource = PDS;
            rp.DataBind();
            int y=ddl.Items.Count;
            while (PDS.PageCount > y )
            {
                y = y + 1;
                ddl.Items.Add(new ListItem("第" + y.ToString() + "页", y.ToString()));
            }
}
自己写的一个分页,,绑定的是dropdownlist控件,这种分页不爽,如何进行首页,1,2,3,4,5,6,7,末页 ,这样的分页 --------------------编程问答-------------------- 用stringbuilder;
比如 stringbuilder sb = new stringbuilder();
sb.append("<a href=..>第一页</a>");
这种形式。 --------------------编程问答-------------------- 1楼,不懂,,给个例子啊 --------------------编程问答-------------------- 需要自己写代码,比较繁琐。用AspNetPager直接可以做出这样的效果。否则需要自己往页面上添加span嵌套超链接才行,繁! --------------------编程问答-------------------- 直接用插件不就可以吗?AspNetPager第三方分页插件 --------------------编程问答-------------------- 不用写服务器控件,我一般用ajax实现。。。

拼接字符串。。

--------------------编程问答-------------------- 弱弱说一句,分页控件很好用的,帮顶 --------------------编程问答--------------------
引用 4 楼 inicplz 的回复:
直接用插件不就可以吗?AspNetPager第三方分页插件

++ --------------------编程问答-------------------- StringBuilder _pager=new StringBuilder();
while (PDS.PageCount > y )
{
    pager.Append("<li onclick=\"\">"+y+"</li>");
}
--------------------编程问答-------------------- 得出总记录数,在算出总页数,根据当前页,找出前四后5页,搞定,收工 --------------------编程问答-------------------- 那就写 Sql 撒 反正你喜欢 麻烦的 --------------------编程问答--------------------
引用 10 楼 god_girl 的回复:
那就写 Sql 撒 反正你喜欢 麻烦的

你不想用控件就用分页sql吧,这样也比较麻烦。 --------------------编程问答-------------------- 谁来个完整的例子,,最讨厌理论了 --------------------编程问答-------------------- 我有全套的JS分页控件.Js GridView.支持Json数据源.使用方式和微软的GridView一样..
Asp.Net服务器分页控件.自己写的.非第三方. --------------------编程问答-------------------- 先想想分页的原理,然后就大致明白了,我也刚弄明白!!! --------------------编程问答-------------------- http://topic.csdn.net/u/20110913/14/06d08bc0-35d4-4f43-9032-af67522564ac.html你可以看看,这里或许有你想要的答案 --------------------编程问答-------------------- http://blog.csdn.net/fengyarongaa/article/details/6346906

这是我写的分页方法
你调用这个分页类就行了

LZ盛气凌人啊。既然没有好的思路和理解! 为什么不能取用控件呢。
学习控件分页的行为模式和机制有什么不好 --------------------编程问答-------------------- 顶帖把………… --------------------编程问答-------------------- 我有一个是不用控件 做的  你看看吧

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test1.aspx.cs" Inherits="test1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>

<body>
      <%=list %>
      <%=list2 %>
      <%=list3 %>
      <%=list4 %>
      <%=list5 %>
</body>
</html>


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;


public partial class test1 : System.Web.UI.Page
{

    public string list = string.Empty;
    public string list2 = string.Empty;
    public string list3 = string.Empty;
    public string list4 = string.Empty;
    public string list5 = string.Empty;
    String strWhere = " 1=1 "; //查询条件
    protected void Page_Load(object sender, EventArgs e)
    {
            bind(Request.QueryString["page"]);
            fanye();
    }
    public void bind(String page)
    {
        string sql;
        //这是传参过来的时候
        if (page == null)
        {
            sql = "select top 5 * from EducationInformation Where" + strWhere;
        }
        else// 大于1的时候
        {
            sql = "select top 5 * from EducationInformation where eId not in (select top((" + page + "-1)* 5 ) eId from EducationInformation Where" + strWhere + " order by eId desc) and  (" + strWhere + ") order by eId desc";//这是查询下一页 也就是page页的
        }
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NOKIAConnectionString"].ConnectionString);
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        sda.Fill(ds);

        list = "<ul>";
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            list += "<li><span class=\"left\"><a href=\"shownews.aspx?id=" + dr["eid"].ToString() + "\">" + dr["title"].ToString() + "</a></span><span class=\"time\">" + dr["time"].ToString().Substring(0, 8) + "</span></li>";
        }
        list += "</ul><br/>";
    }

    public void fanye()
    {
        string sql1 = "select count(*) from EducationInformation";
        SqlConnection conn1 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["NOKIAConnectionString"].ConnectionString);
        SqlCommand cmd1 = new SqlCommand(sql1, conn1);
        SqlDataAdapter sda1 = new SqlDataAdapter(cmd1);
        DataSet ds1 = new DataSet();
        sda1.Fill(ds1);
        int zongye = Convert.ToInt32(ds1.Tables[0].Rows[0][0].ToString());
        int moye = zongye / 5;
        int shangye = Convert.ToInt32(Request.QueryString["page"]) - 1;
        if (shangye == 0)
        {
            shangye = 1;
        }

        int xiaye = Convert.ToInt32(Request.QueryString["page"]) + 1;
        if (xiaye >= moye)
        {
            list4 = "<a href=\"test1.aspx?page=" + moye + "\">下一页</a>";
        }
        else
        {
            list4 = "<a href=\"test1.aspx?page=" + xiaye + "\">下一页</a>";
        }
        list2 = "<a href=\"test1.aspx?page=1\">首页</a>";
        list3 = "<a href=\"test1.aspx?page=" + shangye + "\">上一页</a>";

        list5 = "<a href=\"test1.aspx?page=" + moye + "\">末页</a>";
    }

}

--------------------编程问答-------------------- 想1234567 翻页 自己看看
本来是1234567这样的 我改成上下的了 --------------------编程问答-------------------- 我一直不能理解那些不用服务器控件的人啊。
自己不会写,做不出来,还不用服务器控件。说什么效率啊,资源啊。什么的
我只想说一句,你吃都吃不饱,别谈香不香。 --------------------编程问答-------------------- 做个记号 --------------------编程问答-------------------- 其实不难的,动动脑筋就行了 --------------------编程问答--------------------

--startrow:起始页
--endrow :结束页
 select  b.* from (select a.*,rownum as linenum from (
--你的查处语句
) a where rownum <= 'endrow') b where linenum >= 'startrow' 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,