repeater如何实现AJAX无刷新分页?

云成致雨 2009-03-03 12:24:15
repeater如何实现AJAX无刷新分页?就比如说,我要显示这样的内容"

.ajax实现dropdownlist与datagrid或Repeater无联动刷新(帮忙)
.repeater如何实现分页?
.使用Repeater怎样实现分页?
.用repeater分页xml中的数据
saglasdjglk
fagsadgsdagasdga
gadfgasdgasdgasdg


.为什么有的分页代码能刷新,有的不能刷新?


共15页,当前第5页,首页 上一页 下一页 末页
"
我点其中一条可以链接到对应的内容,但显还是在这个页面,就是上页划去的那部分。
能给个例子最好。


...全文
561 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
云成致雨 2009-03-04
  • 打赏
  • 举报
回复
问题解决了,答者都有分.结贴。
pbmlly 2009-03-04
  • 打赏
  • 举报
回复
up
mawering 2009-03-04
  • 打赏
  • 举报
回复
帮顶了,学习一下!!
云成致雨 2009-03-04
  • 打赏
  • 举报
回复
乍么用啊问题是
路人乙e 2009-03-04
  • 打赏
  • 举报
回复
直接使用iframe,超简单的
浮生若梦丶 2009-03-04
  • 打赏
  • 举报
回复


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}

}
private void bind()
{
//用SQL的 like
string sql = "select * from w_bloglog where uid=" + Session["UID"] + " and logclass like '%" + this.DropDownList1.SelectedValue.ToString() + "%' order by LogTime desc";
Db g = new Db();//这里是调用我自定义的一个类 你老实写 Gridview绑定就是了
this.GridView1.DataSource = g.GetGrid(sql);
this.GridView1.DataKeyNames=new string[]{"logid"};
this.GridView1.DataBind();
if (this.GridView1.Rows.Count == 0)
{
Response.Write("<div align='center'>没有日志记录</center>");
this.t.Visible = false;
}

CurrPage.Text = "第" + Convert.ToInt32(GridView1.PageIndex + 1).ToString() + "页,共" + GridView1.PageCount + "页";
int curpage = Convert.ToInt32(GridView1.PageIndex + 1);
this.MoveFirst.Enabled = true;
this.MoveLast.Enabled = true;
this.MoveNext.Enabled = true;
this.MovePrev.Enabled = true;
if (curpage == 1)
{
this.MoveFirst.Enabled = false;//不显示第一页按钮
this.MovePrev.Enabled = false;//不显示上一页按钮
}
if (curpage == GridView1.PageCount)
{
this.MoveNext.Enabled = false;//不显示下一页
this.MoveLast.Enabled = false;//不显示最后一页
}

}
//自定义分页
protected void PagerChange(object sender, CommandEventArgs e)
{

switch (Convert.ToString(e.CommandArgument))
{
case "next":
// bind();
if (GridView1.PageIndex < GridView1.PageCount - 1)
GridView1.PageIndex = GridView1.PageIndex + 1;

bind();
break;
case "prev":
// bind();
if (GridView1.PageIndex > 0)
GridView1.PageIndex = GridView1.PageIndex - 1;

bind();
break;
case "last":
GridView1.PageIndex = GridView1.PageCount - 1;
bind();
break;
case "fir":
GridView1.PageIndex = 0;
bind();
break;
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.EditIndex = -1;
this.GridView1.PageIndex = e.NewPageIndex;//分页绑定

bind();
}

浮生若梦丶 2009-03-04
  • 打赏
  • 举报
回复


================================================================================
修改版:
protected void Page_Load(object sender, EventArgs e)
{
string str = "两年多的坚持推动最终换来圆满的结果,民众期盼已久的成都赴台湾包机将于12月19日首度实现直航。据悉,成都市作为此次协议签署中大陆新开放的16个客运包机直航城市、8个邮件封发局之一,空运直航和直接通邮的实现,势必将翻开成都台湾两地全方位交流与合作的新篇章。成都到台湾包机直航将带来4方面的有利举措。一是有利于成都市进一步推动对台经贸工作。目前,在成都市登记注册的台资企业共有750家,投资总额22.36亿美元,居西部大城市前列,在成都常住的台商、台胞超过3000人,直航包机的开通将更有利于成都台湾的经贸合作。二是有利于加强对台交流。直航包机的开通,必将极大推进类似对台交流工作,不断扩大两岸交流领域和层次。三是有利于推动成都市灾后重建工作。未来几年,成都灾后重建项目中包含很多广大台湾同胞参与的项目,这些项目的建成和投入使用,将更加密切成都台湾联系。四是有利于西部地区旅游市场的恢复和重建。受地震影响,成都市旅游市场遭受重创,现在入境游仍在低谷徘徊。成都旅游协会赴台开展了多种形势的旅游项目推介活动。台湾旅游业界对组团来成都市旅游均持积极态度,对成都作为第二批直航包机城市表示极大的支持,随着成都台湾直航包机开通和对台旅游开放,将大大方便台湾游客来成都旅游,极大地促进成都市入境游市场的恢复。目前,关于成都到台湾包机直航首航工作,国航西南公司和四川航空公司都在积极筹备中,四川航空公司已对外公布,将于12月19日开通首航。另外,国航西南公司也计划在12月19日开通首航,并表示一旦首发时间确认,将及时对外公布。";
Label1.Text = OutputBySize(str);
}


public string OutputBySize(string p_strContent)//分页函数
{
string m_strRet = "";
int m_intPageSize = 100;//文章每页大小
int m_intCurrentPage = 1;//设置第一页为初始页
int m_intTotalPage = 0;
int m_intArticlelength = p_strContent.Length;//文章长度
if (m_intPageSize < m_intArticlelength)
{//如果每页大小大于文章长度时就不用分页了
if (m_intArticlelength % m_intPageSize == 0)
{//set total pages count
m_intTotalPage = m_intArticlelength / m_intPageSize;
}
else
{//if the totalsize
m_intTotalPage = m_intArticlelength / m_intPageSize + 1;
}
if (Request.QueryString["ps"] != null)
{//set Current page number
try
{//处理不正常的地址栏的值
m_intCurrentPage = Convert.ToInt32(Request.QueryString["ps"]);
if (m_intCurrentPage > m_intTotalPage)

m_intCurrentPage = m_intTotalPage;

}
catch
{
//m_intCurrentPage = m_intCurrentPage;
}
}
//set the page content 设置获取当前页的大小
if (m_intCurrentPage < m_intTotalPage)
{
m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1));
m_strRet += p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);
}
else if (m_intCurrentPage == m_intTotalPage)
{
int mm_intPageSize = m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1);
m_strRet += p_strContent.Substring(m_intArticlelength - mm_intPageSize);
}

string m_strPageInfo = "";
for (int i = 1; i <= m_intTotalPage; i++)
{
if (i == m_intCurrentPage)
m_strPageInfo += "[" + i + "]";
else
m_strPageInfo += " <a href=?ps=" + i + ">[" + i + "] </a> ";

}
if (m_intCurrentPage > 1)
m_strPageInfo = " <a href=?ps=" + (m_intCurrentPage - 1) + ">上一页 </a>" + m_strPageInfo;
if (m_intCurrentPage < m_intTotalPage)
m_strPageInfo += " <a href=?ps=" + (m_intCurrentPage + 1) + ">下一页 </a>";
//输出显示各个页码
this.ShowPageNumber.Text = " <p> </p>" + m_strPageInfo;

}
else
{
m_strRet += p_strContent;
}
return m_strRet;
}

=================
前台添加:
<asp:Label ID="Label1" runat="server" Text="Label"> </asp:Label>
<asp:Label ID="ShowPageNumber" Font-Size="14px" runat="server"> </asp:Label>


zzxap 2009-03-04
  • 打赏
  • 举报
回复
很简单
先安装asp.net ajax
在用UpdatePanel把repeater围起来
不需要写任何代码就可以实现无刷新分页
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:repeater id="Repeater1" runat="server">

</asp:repeater>

<div style="PADDING-TOP: 10px" align="center"><asp:label id="lblCurrentPage" runat="server" Font-Size="12px"></asp:label><asp:hyperlink id="lnkFirst" Font-Size="12px" Runat="server">首頁</asp:hyperlink>  <asp:hyperlink id="lnkPrev" Font-Size="12px" Runat="server">上一頁</asp:hyperlink>  <asp:hyperlink id="lnkNext" Font-Size="12px" Runat="server">下一頁</asp:hyperlink>  <asp:hyperlink id="lnkLast" Font-Size="12px" Runat="server">尾頁</asp:hyperlink>
</div>
</ContentTemplate>
</asp:UpdatePanel>
wuyq11 2009-03-03
  • 打赏
  • 举报
回复
http://www.cnblogs.com/hjs1573/archive/2007/11/28/976036.html
http://www.cnblogs.com/shouzheng/articles/1158281.html
云成致雨 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pt1314917 的回复:]
如果不想使用xmlhttprequest实现无刷新效果。可以采用.net自带的ajax核心组件来实现。
[/Quote]
具体乍么实现啊?
pt1314917 2009-03-03
  • 打赏
  • 举报
回复
如果不想使用xmlhttprequest实现无刷新效果。可以采用.net自带的ajax核心组件来实现。
wts_net 2009-03-03
  • 打赏
  • 举报
回复
学习
ZW_Ren 2009-03-03
  • 打赏
  • 举报
回复
Repeater是个服务端控件,用AJAX能控制吗,不清楚,期待高手。
云成致雨 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
http://www.cnblogs.com/hjs1573/archive/2007/11/28/976036.html
http://www.cnblogs.com/shouzheng/articles/1158281.html
[/Quote]
有两个问题:
1.
http://www.cnblogs.com/hjs1573/archive/2007/11/28/976036.html
这里
List<Class1> 没有定义不知道是什么?我改成 DataTable cl = getmess();
ps = new PagedDataSource();
ps.DataSource = cl;
可是提示说ps.DataSource=cl;缺少类型转换;
2.“点其中一条可以链接到对应的内容,但显还是在这个页面;”这个问题还是没用实现.
请能否具体点啊?
wxd024 2009-03-03
  • 打赏
  • 举报
回复
顶顶顶

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧