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

asp.net ajax分页

asp.net ajax分页 给我个简单点的实例  应用与论坛 --------------------编程问答-------------------- 最简单的一个方法就是放到iframe中 --------------------编程问答-------------------- 我要的是例子,不是提示 --------------------编程问答-------------------- 我要的是例子不是图示 --------------------编程问答-------------------- 前台:
<asp:GridView ID="gdvNews" runat="server" DataKeyNames="id" AutoGenerateColumns="false"
                        Width="100%" HeaderStyle-HorizontalAlign="Left" RowStyle-HorizontalAlign="Left">
                        <Columns>
                            <asp:TemplateField HeaderText="标题">
                                <ItemTemplate>
                                      <img src="Images/list.gif" align="absmiddle" /> <a href='news.aspx?id=<%#DataBinder.Eval(Container.DataItem, "id") %>' target="_blank">
                                        <%#DataBinder.Eval(Container.DataItem, "title") %>
                                    </a>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="in_date" HeaderText="更新时间" ItemStyle-Width="80px" HtmlEncode="false"
                                DataFormatString="{0:yyyy-MM-dd}" />
                        </Columns>
                    </asp:GridView>
                    <br />
                    <asp:Panel ID="pagePanel" runat="server" Width="100%">
                        <asp:Label ID="lblCount" runat="server"></asp:Label>
                        <asp:Label ID="lblPage" runat="server"></asp:Label>
                        <asp:HyperLink runat="server" ID="lnkFirst">首页</asp:HyperLink>
                        <asp:HyperLink runat="server" ID="lnkPrevious">上一页</asp:HyperLink>
                        <asp:HyperLink runat="server" ID="lnkNext">下一页</asp:HyperLink>
                        <asp:HyperLink runat="server" ID="lnkLast">尾页</asp:HyperLink>
                            转到:<asp:DropDownList ID="dropPage" runat="server" Width="50px"
                            AutoPostBack="True" OnSelectedIndexChanged="dropPage_SelectedIndexChanged">
                        </asp:DropDownList>
                        页</asp:Panel>


后台
protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            this.BindNews();
        }
    }
    /// <summary>
    /// 绑定数据
    /// </summary>
    private void BindNews()
    {
        int RecordCount;//总记录数
        int PageCount;//总页数
        int CurrentPageIndex = 0;//当前页数
        int PageRecordCount = 20;//每页记录数

        SqlDataAdapter adapter = new SqlDataAdapter("select * from news_table", SqlHelper.ConnectionStringLocalTransaction);
        DataTable table = new DataTable();
        adapter.Fill(table);

        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = table.DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = PageRecordCount;

        RecordCount = pds.DataSourceCount;
        if (RecordCount != 0)
        {
            if (RecordCount % PageRecordCount == 0)
            {
                PageCount = RecordCount / PageRecordCount;
            }
            else
            {
                PageCount = RecordCount / PageRecordCount + 1;
            }

            if (Request.QueryString["page"] == null)
            {
                CurrentPageIndex = 1;
            }
            else
            {
                CurrentPageIndex = int.Parse(Request.QueryString["page"].Trim());
            }
            pds.CurrentPageIndex = CurrentPageIndex - 1;

            if (PageCount != 1)
            {
                if (CurrentPageIndex == 1)
                {
                    this.lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurrentPageIndex + 1);
                    this.lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + PageCount;
                }
                else if (CurrentPageIndex == PageCount)
                {
                    this.lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1";
                    this.lnkPrevious.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurrentPageIndex - 1);
                }
                else
                {
                    this.lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1";
                    this.lnkPrevious.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurrentPageIndex - 1);
                    this.lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurrentPageIndex + 1);
                    this.lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + PageCount;
                }
            }

            this.dropPage.Items.Clear();
            for (int i = 1; i <= PageCount; i++)
            {
                this.dropPage.Items.Add(i.ToString());
            }
            this.dropPage.SelectedIndex = pds.CurrentPageIndex;
            this.lblCount.Text = "共有 " + RecordCount.ToString() + " 条记录";
            this.lblPage.Text = "当前 " + CurrentPageIndex.ToString() + "/" + PageCount.ToString() + " 每页 " + PageRecordCount.ToString() + " 条记录";
            this.pagePanel.Visible = true;
        }
        else
        {
            this.pagePanel.Visible = false;
        }

        this.gdvNews.DataSource = pds;
        this.gdvNews.DataBind();
    }

    protected void dropPage_SelectedIndexChanged(object sender, EventArgs e)
    {
        Response.Redirect(Request.CurrentExecutionFilePath + "?page=" + this.dropPage.Text.Trim());
    }
news_table字段有:
id 标题ID
title 标题
in_date 日期 --------------------编程问答-------------------- 我要用的是 Ajax 你看好了 --------------------编程问答-------------------- 我操,从来没见过问问题这么横的,你当别人欠你的啊?SB --------------------编程问答-------------------- 求人还这么哼。 --------------------编程问答-------------------- 是为了无刷新还是怎么样啊··ajax没带分页啊··
有一个aspnetPage控件放在updatePanle里面应该可以无刷新吧 --------------------编程问答-------------------- 说得这么明白了,还不知道怎么做吗, --------------------编程问答-------------------- 是为了无刷新还是怎么样啊··ajax没带分页啊·· 
有一个aspnetPage控件放在updatePanle里面应该可以无刷新吧

就是他 --------------------编程问答-------------------- 无刷新的 分页 没试过  
飘过 --------------------编程问答-------------------- PagedDataSource实现的是假分页,如果数据是从缓冲里加载可以使用,如果是反复查数据库就不要使用啦。 --------------------编程问答-------------------- aspnetPage控件的确很强大啊 --------------------编程问答-------------------- 粘主 你给大家磕头认错吧。 --------------------编程问答--------------------
引用 14 楼 asdf_ndsc 的回复:
粘主 你给大家磕头认错吧。

好难的问题 --------------------编程问答--------------------
引用 15 楼 sohighthesky 的回复:
引用 14 楼 asdf_ndsc 的回复:
粘主 你给大家磕头认错吧。

好难的问题

诚恳就好 --------------------编程问答-------------------- 我知道,但我不说 --------------------编程问答-------------------- 这个,我有源代码,不过不免费提供! --------------------编程问答--------------------
引用 17 楼 lw065 的回复:
我知道,但我不说
 太晕了...呵呵 --------------------编程问答-------------------- 不就是一次从数据库里面读一定数目的条数,然后绑定么?
干嘛搞的这么麻烦啊?
别人和你说了原理,你应该自己去实现功能,这样才是正常的,什么都要代码,永远都是~~~~~~~ --------------------编程问答-------------------- 参考以下的,无刷新分页.都用存储过程实现的.

Repeater控件运用Sql2000通用存储过程和Jquery实现无刷新分页功能 --------------------编程问答-------------------- updatePanle

加上这个不就可以了,问个问题还牛B,有水平 自己搞定 --------------------编程问答--------------------
引用 21 楼 fgmis 的回复:
参考以下的,无刷新分页.都用存储过程实现的.

Repeater控件运用Sql2000通用存储过程和Jquery实现无刷新分页功能


在ff下提示“请示失败或超时,请稍后重试" --------------------编程问答-------------------- 做程序员,要先学做人啊。。。 --------------------编程问答-------------------- 不刷新分页?不刷新你怎么按照最新状况显示要分页的帖子?更不明白都这样了还弄个
Ajax干嘛。。。 --------------------编程问答--------------------
引用 16 楼 wl_bdqn 的回复:
引用 15 楼 sohighthesky 的回复:
引用 14 楼 asdf_ndsc 的回复:
粘主 你给大家磕头认错吧。

好难的问题

诚恳就好

啥人吗! --------------------编程问答-------------------- 用微软的AJAX框架中的客户端的PageMethods来实现,你从数据库中读取了数据,然后放入到一个table中,这个table可以在后台用字符串的形式写出。然后返回这个这个字符串放入到一个div.innerHTML中。就行了。 --------------------编程问答-------------------- 哈哈,我正在弄这个,也是将aspnetpage放到updatepanel里面 --------------------编程问答-------------------- 高 --------------------编程问答-------------------- 第一次看到这么问人的,楼主真是高人。佩服佩服...... --------------------编程问答-------------------- 哈哈。。。楼主 问问题要虚心求教 --------------------编程问答-------------------- 要虚心呀.估计下面是不会有会人再给你了.建议关了再发一帖了.诚恳点!我给你 --------------------编程问答-------------------- 不知道你用webform还是asp.net mvc?如果是webform,可以用AspNetPager配合UpdatePanel来实现Ajax分页,如果是asp.net mvc,直接用MvcPager配合jQuery或默认的MicrosoftAjax客户端脚本就可以了,两个控件都免费而且开源,感兴趣可以到我的主页到查看示例和下载:http://www.webdiyer.com --------------------编程问答-------------------- abc --------------------编程问答-------------------- 楼主,去下载一个js写的分页,然后用 ajax 传递当前页数,每页的容量。
最好用json格式。。
这种ajax分页我写过很多次啦
http://www.fpdisplay.com/trade/SupplyList.aspx?keyword=%u7535%u89C6
这个就是其中之一 --------------------编程问答--------------------
引用楼主 woaidoudouhui 的回复:
asp.net ajax分页 给我个简单点的实例 应用与论坛


什么是ajax分页? 不是ajax我我都是有:

ASP.NET GridView分页控件

第一种方式:使用自定义按钮实现分页功能,首页、上一页、下一页、末页及当前页面,总页数,分页几条,跳转第几页
 


第二种方式:使用HyperLinkPager分页控件。



 
--------------------编程问答-------------------- 我不知道!我是来学习的! --------------------编程问答--------------------
引用 14 楼 asdf_ndsc 的回复:
粘主 你给大家磕头认错吧。
+1 --------------------编程问答--------------------
引用 38 楼 luoweihua7 的回复:
引用 14 楼 asdf_ndsc 的回复:

粘主 你给大家磕头认错吧。
+1


+2 --------------------编程问答--------------------
引用 38 楼 luoweihua7 的回复:
引用 14 楼 asdf_ndsc 的回复:

粘主 你给大家磕头认错吧。
+1

+2 
 认错了我给一个我自己用jquery封装的无刷新分页插件给你 --------------------编程问答--------------------
引用 39 楼 xuzhenshun 的回复:
引用 38 楼 luoweihua7 的回复:

引用 14 楼 asdf_ndsc 的回复:

粘主 你给大家磕头认错吧。
+1


+2

+3 --------------------编程问答-------------------- jQuery.fn.extend({
    Pager: function (settings, callback) {
        var defSetting = {
            total: 103,
            pagesize: 5,
            pagelen: 5,
            parentClass: "ajaxpage",
            selectClass: "selectpage",
            showFirPage: false
        };
        var opts = $.extend(defSetting, settings);
        $(this).html("");
        var _paeCount = Math.ceil(opts.total / opts.pagesize);
        var _showfirpage = opts.total > opts.pagesize;
        if (opts.showFirPage || _showfirpage) {
        
            /****************** 下一页>> *****************/
            var getNextPageHtml = function (startindex, len) {
                var _pagehtml = "";
                if (len - startindex + 1 > opts.pagelen) { len = startindex + opts.pagelen - 1; }
                else
                    $("#nextmore").data("isnext", false);
                $("#premore").data("curFirstIndex", startindex);
                $("#nextmore").data("curLastIndex", len);
                for (i = startindex; i <= len; i++) {
                    _pagehtml += "<a>" + i + "</a>";
                }
                return _pagehtml;
            };
            /****************** 上一页<< *****************/
            var getPrevPageHtml = function (len) {
                var _pagehtml = "";
                var startindex = 1;
                if (len - opts.pagelen > 0) { startindex = len - opts.pagelen + 1; }
                else
                    $("#premore").data("isprev", false);
                $("#premore").data("curFirstIndex", startindex);
                $("#nextmore").data("curLastIndex", len);
                for (i = startindex; i <= len; i++) {
                    _pagehtml += "<a>" + i + "</a>";
                }
                return _pagehtml;
            };
            /****************** 替换样式 *****************/
            var setDelClass = function () {
                var _first_a = pageObj.find("a").eq(1);
                _first_a.addClass(opts.selectClass);
                _first_a.html("[" + _first_a.html() + "]");
            };
            /******************  翻页元素添加事件 *****************/
            var setPageClick = function (_firstindex) {
                $("#premore").nextUntil("#nextmore").click(function () {
                    if (typeof (callback) == 'function' && $.trim($(this).attr("class")) != opts.selectClass) {
                        $(this).addClass(opts.selectClass).siblings().removeClass();
                        var curIndex = $(this).html();
                        var indexReg = /[\d+]/gi;
                        $(this).siblings().each(function (i) {
                            var temphtml = $(this).html();
                            if (indexReg.test(temphtml)) {
                                $(this).html(temphtml.match(indexReg).join(""));
                            }
                        });
                        $(this).html("[" + $(this).html() + "]");
                        callback(pageObj, curIndex);
                    }
                });
                if (_firstindex) {
                    if (typeof (callback) == 'function') {
                        callback(pageObj, _firstindex);
                    }
                }
            };

            var _html = "<div class='" + opts.parentClass + "'></div>";
            var pageObj = $(_html);
            pageObj.append("<a id='premore'><<</a>");
            pageObj.append(getNextPageHtml(1, opts.pagelen > _paeCount ? _paeCount : opts.pagelen));
            pageObj.append("<a id='nextmore'>>></a>");
            $(this).html(pageObj);
            setDelClass();

            if (_paeCount > opts.pagelen) {
                $("#nextmore").data("curLastIndex", opts.pagelen); //设置当前最后一个index数
                $("#nextmore").data("isnext", true);
                $("#nextmore").bind("click", function () {
                    if ($("#nextmore").data("isnext")) {
                        $(this).prevUntil("#premore").remove();
                        var _pagehtml = getNextPageHtml($(this).data("curLastIndex") + 1, _paeCount);
                        $(_pagehtml).insertBefore($(this));
                        setDelClass();
                        $("#premore").data("isprev", true);
                        setPageClick($("#premore").data("curFirstIndex"));
                    }
                }
);
            }

            $("#premore").data("isprev", false);
            $("#premore").bind("click", function () {
                if ($(this).data("isprev")) {
                    $(this).nextUntil("#nextmore").remove();
                    var _pagehtml = getPrevPageHtml($(this).data("curFirstIndex") - 1);
                    $(_pagehtml).insertAfter($(this));
                    setDelClass();
                    $("#nextmore").data("isnext", true);
                    setPageClick($("#premore").data("curFirstIndex"));
                }
            });
            setPageClick();
        }
    }
}); --------------------编程问答-------------------- 调用就自己看看吧。。不用多说了。。代码已经有了。。自己用看着办。。。 --------------------编程问答--------------------
http://blog.csdn.net/porschev/article/details/6114997 --------------------编程问答-------------------- 学代码先学做人是个 道理。
http://www.echolac.com/Business.html
进去后,你点分页试试。 
代码呗。反键,源。瞅瞅就知道了 --------------------编程问答-------------------- 拖个数据库控件,勾勾勾,自动翻页,自动绑定
套个updatePanle多省事,
都省的来问了

--------------------编程问答-------------------- 简单 GridView AJAX 局部刷新分页例子

http://dotnet.aspx.cc/Exam/AjaxPaging.aspx --------------------编程问答-------------------- PF啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,