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控件的确很强大啊 --------------------编程问答-------------------- 粘主 你给大家磕头认错吧。 --------------------编程问答--------------------
好难的问题 --------------------编程问答--------------------
诚恳就好 --------------------编程问答-------------------- 我知道,但我不说 --------------------编程问答-------------------- 这个,我有源代码,不过不免费提供! --------------------编程问答-------------------- 太晕了...呵呵 --------------------编程问答-------------------- 不就是一次从数据库里面读一定数目的条数,然后绑定么?
干嘛搞的这么麻烦啊?
别人和你说了原理,你应该自己去实现功能,这样才是正常的,什么都要代码,永远都是~~~~~~~ --------------------编程问答-------------------- 参考以下的,无刷新分页.都用存储过程实现的.
Repeater控件运用Sql2000通用存储过程和Jquery实现无刷新分页功能 --------------------编程问答-------------------- updatePanle
加上这个不就可以了,问个问题还牛B,有水平 自己搞定 --------------------编程问答--------------------
在ff下提示“请示失败或超时,请稍后重试" --------------------编程问答-------------------- 做程序员,要先学做人啊。。。 --------------------编程问答-------------------- 不刷新分页?不刷新你怎么按照最新状况显示要分页的帖子?更不明白都这样了还弄个
Ajax干嘛。。。 --------------------编程问答--------------------
啥人吗! --------------------编程问答-------------------- 用微软的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
这个就是其中之一 --------------------编程问答--------------------
什么是ajax分页? 不是ajax我我都是有:
ASP.NET GridView分页控件
第一种方式:使用自定义按钮实现分页功能,首页、上一页、下一页、末页及当前页面,总页数,分页几条,跳转第几页
第二种方式:使用HyperLinkPager分页控件。
--------------------编程问答-------------------- 我不知道!我是来学习的! --------------------编程问答-------------------- +1 --------------------编程问答--------------------
+2 --------------------编程问答--------------------
+2
认错了我给一个我自己用jquery封装的无刷新分页插件给你 --------------------编程问答--------------------
+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