日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Repeater无刷新分页

發布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Repeater无刷新分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上摘錄?

前臺:
?<html xmlns="http://www.w3.org/1999/xhtml">
? <head id="Head1" runat="server">
???? <title>CallBack</title>
???? <script language="javascript" type="text/javascript">
???????? function turnPage(pageIndex) {
???????????? CallServer(pageIndex, 'content');

???????? }

???????? function ReceiveCallback(arg, context) {
???????????? var container = document.getElementById(context);
???????????? //alert(arg + "? " + context); //有興趣你可以看看運行時到底顯示什么東西
???????????? container.innerHTML = arg;
???????? }
???? </script>
?
?</head>
?<body>
???? <form id="form1" runat="server">
???? <div id="content">
???????? <asp:Repeater ID="List" runat="server" OnItemDataBound="List_ItemDataBound">
???????????? <ItemTemplate>
???????????????? <div>
???????????????????? 用戶名:<asp:Label ID="NickName" runat="server"></asp:Label>
???????????????????? QQ號:<asp:Label ID="QNumber" runat="server"></asp:Label>
???????????????? </div>
???????????? </ItemTemplate>
???????? </asp:Repeater>
???? </div>
???? <asp:Literal ID="Pager" runat="server"></asp:Literal>
???? </form>
?</body>
?</html>

?

后臺:
? using System;
? using System.Data;
? using System.Web;
? using System.Text;
? using System.Web.UI;
? using System.Web.UI.HtmlControls;
? using System.Web.UI.WebControls;
? using System.IO;
? using System.Globalization;

namespace WebApplication4
{
??? public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
??? {
??????? //每頁顯示記錄數
??????? static int PAGESIZE = 4;
??????? DataTable dt = null;
??????? private int currentPageIndex;
??????? protected void Page_Load(object sender, EventArgs e)
??????? {
??????????? if (!IsPostBack)
??????????? {
??????????????? BindList(1, true); //綁定數據
??????????????? //獲取用于回調的
??????????????? string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "content", false);
??????????????? string callbackScript = string.Format("function CallServer(arg,content){{ {0} }}", callbackReference);
??????????????? ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);

??????????????? //這3條語句你都可以不要修改直接照抄,功能是將后臺的代碼直接注冊到前臺中并執行。

??????????? }
??????? }

??????? /**/
??????? /// <summary>
??????? /// 綁定列表
??????? /// </summary>
??????? /// <param name="pageIndex">翻頁頁碼</param>
??????? /// <param name="needRender">是否需要重畫分頁面碼</param>
??????? protected void BindList(int pageIndex, bool needRender)
??????? {
??????????? DataTable dt = GetData();? //獲取數據
??????????? //計算總頁數
??????????? int pages = (dt.Rows.Count % PAGESIZE == 0) ? dt.Rows.Count / PAGESIZE :(dt.Rows.Count / PAGESIZE) + 1;
??????????? if (needRender) //true 執行
??????????????? RenderPager(pages);? //繪制出分頁

??????????? if (pageIndex > pages)//似乎沒用
??????????????? pageIndex = pages;
??????????? else if (pageIndex < 1)
??????????????? pageIndex = 1;

??????????? int startId = (pageIndex - 1) * PAGESIZE + 1;? //起始頁
??????????? int endId = pageIndex * PAGESIZE;? //末尾頁

??????????? DataRow[] rows = dt.Select(string.Format("ID>={0} and ID<={1}", startId, endId));
??????????? List.DataSource = rows;
??????????? List.DataBind();

??????????//這里是數據的綁定,如果你一直按照他的思路,那你就完了,因為原作者是自己臨時寫的數據源,而你的數據源是在數據庫中

????????? //所以修改代碼是必須的。這里用到了分頁的類PagedDataSource

?????????//???DataTable dt = GetData();? //獲取數據
??????????//? //計算總頁數
??????????//? int pages = (dt.Rows.Count % PAGESIZE == 0) ? dt.Rows.Count / PAGESIZE : (dt.Rows.Count / PAGESIZE) + 1;
?????????//?? if (needRender)
??????????//? {
??????????//????? RenderPager(pages);? //繪制出分頁
??????????//? }
??????????//? PagedDataSource pds = new PagedDataSource();
??????????//? pds.DataSource = questionTable.DefaultView;
??????????//? pds.AllowPaging = true;
??????????//? pds.PageSize = 5;
??????????//? if (pageIndex == 0)
???????????// {
???????????//???? pageIndex = 1;
???????????// }
??????????? //設置分頁對象的當前索引
???????????// pds.CurrentPageIndex = pageIndex - 1;?? //由這個控制分頁顯示的數據內容
???????????// test.DataSource = pds;
???????????// test.DataBind();
??????? }

??????? /**/
??????? /// <summary>
??????? /// 畫出分頁頁碼???? 大家用時都可以不用修改了
??????? /// </summary>
??????? /// <param name="pages"></param>
??????? protected void RenderPager(int pages)
??????? {
??????????? StringBuilder sb = new StringBuilder();
??????????? int pageIndex = 1;
??????????? do
??????????? {
??????????????? sb.AppendFormat("<a href='javascript:turnPage({0});'>{0}</a>&nbsp;&nbsp;",pageIndex);
??????????? } while (pageIndex++ < pages);
??????????? Pager.Text = sb.ToString();
??????? }

??????? /**/
??????? /// <summary>
???????/// 初始化一個DataTable作數據源? 就是獲取數據并以DataTable形式返回? 以便BindList調用
??????? /// </summary>
??????? protected DataTable GetData()
??????? {
??????????? if (null == Cache["Data"])
??????????? {
??????????????? dt = new DataTable();
??????????????? dt.Columns.Add("ID", typeof(int));
??????????????? dt.Columns.Add("NickName", typeof(string));
??????????????? dt.Columns.Add("QNumber", typeof(string));

??????????????? DataRow row = dt.NewRow();
??????????????? row["ID"] = 1;
??????????????? row["NickName"] = "人物1";
??????????????? row["QNumber"] = "21243468";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 2;
??????????????? row["NickName"] = "人物2";
??????????????? row["QNumber"] = "9058307";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 3;
??????????????? row["NickName"] = "人物3";
??????????????? row["QNumber"] = "21243468";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 4;
??????????????? row["NickName"] = "人物4";
??????????????? row["QNumber"] = "22526451";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 5;
??????????????? row["NickName"] = "人物5";
??????????????? row["QNumber"] = "254852182";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 6;
??????????????? row["NickName"] = "人物6";
??????????????? row["QNumber"] = "81461006";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 7;
??????????????? row["NickName"] = "人物7";
??????????????? row["QNumber"] = "375772376";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 8;
??????????????? row["NickName"] = "人物8";
??????????????? row["QNumber"] = "153534649";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 9;
??????????????? row["NickName"] = "人物9";
??????????????? row["QNumber"] = "619468";
??????????????? dt.Rows.Add(row);

??????????????? row = dt.NewRow();
??????????????? row["ID"] = 10;
??????????????? row["NickName"] = "人物10";
??????????????? row["QNumber"] = "83223563";
??????????????? dt.Rows.Add(row);

??????????????? Cache["Data"] = dt;
??????????? }
??????????? else
??????????? {
??????????????? dt = Cache["Data"] as DataTable;
??????????? }
??????????? return dt;

?????? ??? //顯然原作者只是為了演示無刷新功能,才自己寫數據源(從整個代碼來看,可見原作者功底之深厚)

????????? //那么我們就得寫自己的獲取數據代碼

????????? //這個就不用我寫了吧,只要從數據庫獲取后以DataTable的形式返回即可。
??????? }

??????? #region? 實現ICallbackEventHandler 成員RaiseCallbackEvent#region 實現ICallbackEventHandler 成員RaiseCallbackEvent

??????? //這個就是實現無刷新的回調方法了。

?????? //其實我們所說的無刷新分頁,只是看上去不刷新,其運行時數據還是刷新的,要不然怎么讓不同的頁面顯示不同的內容呢?

?????? //它是以回調的機制獲取新的數據流然后再將新的數據流重新繪制顯示出來

??????? public void RaiseCallbackEvent(string eventArgument)
??????? {
??????????? currentPageIndex = Convert.ToInt32(eventArgument);
??????????? BindList(currentPageIndex, false);
??????? }

??????? public string GetCallbackResult()
??????? {
??????????? //返回再次綁定后的Repeater的表現內容
??????????? return RenderControl(List);
??????? }
???????#endregion

??????? /**/
??????? /// <summary>
??????? /// 獲取指定控件重畫的內容
??????? /// </summary>
??????? /// <param name="control"></param>
??????? /// <returns></returns>
??????? private string RenderControl(Control control)
??????? {
??????????? StringWriter writer1 = new StringWriter(CultureInfo.InvariantCulture);
??????????? HtmlTextWriter writer2 = new HtmlTextWriter(writer1);

??????????? control.RenderControl(writer2);
??????????? writer2.Flush();
??????????? writer2.Close();
??????????? return writer1.ToString();
??????? }

?

????????//顯示數據

???????? //顯示數據這個一般自己有自己定義的顯示數據形式,所以這個可以根據自己需求修改它,你設置可以不要它,自己重新來寫
??????? protected void List_ItemDataBound(object sender, RepeaterItemEventArgs e)
??????? {
??????????? if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem)
??????????? {
??????????????? Label NickName = e.Item.FindControl("NickName") as Label;
??????????????? Label QNumber = e.Item.FindControl("QNumber") as Label;

??????????????? DataRow row = e.Item.DataItem as DataRow;
??????????????? NickName.Text = row["NickName"].ToString();
??????????????? QNumber.Text = row["QNumber"].ToString();
??????????? }
??????? }
??? }
}

轉載于:https://www.cnblogs.com/Yellowshorts/archive/2012/11/28/2792202.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的Repeater无刷新分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 全球av在线 | 亚洲经典视频 | 国产三级大片 | 黄色福利片 | 欧美成人一区二区三区四区 | 丁香六月激情综合 | 亚洲成人一区二区在线观看 | av制服丝袜在线 | 手机在线免费观看av | 国产精品国产三级国产普通话蜜臀 | 日本蜜桃视频 | 欧美日韩伦理片 | 日操夜操天天操 | 一级性生活毛片 | 美女搡bbb又爽又猛又黄www | 黄视频在线免费 | 操操网站| 天天干天天爱天天操 | 天堂欧美城网站网址 | 久久亚洲伊人 | 国产精品乱码一区二区三区 | 91女神在线| 波多野结衣黄色网址 | 黄色片视频在线观看 | 国产婷婷色一区二区三区 | 国产真人无遮挡作爱免费视频 | 国产婷婷色一区二区在线观看 | 美女三级网站 | 中文字幕乱码无码人妻系列蜜桃 | 日韩午夜小视频 | 公侵犯人妻中文字慕一区二区 | 国产乱子伦精品无码专区 | 美女脱了裤子让男人桶 | 亚洲少妇在线 | 99re在线视频观看 | 色婷婷av一区二区三 | 久久视频在线 | 日韩作爱视频 | 欧美黄色精品 | 女女互慰吃奶互揉调教捆绑 | 中文字幕第99页 | 美女隐私无遮挡网站 | 成年人黄色 | www.好了av.com | av男人的天堂网 | 操www| 成人观看网站 | 亚洲日本欧美精品 | 欧美在线网站 | 国产精品久久综合青草亚洲AV | 亚洲精品18| 欧美成人黄色网 | a级黄色片网站 | 国产精品人人爽人人爽 | 超碰夫妻 | 久久免费精品国产 | 在线天堂av| 国产精品麻豆视频 | 中国新婚夫妻性猛交 | 反差在线观看免费版全集完整版 | 国产精品videossex久久发布 | 亚洲AV午夜福利精品一级无码 | 亚洲黄色小说网 | 亚洲无色| 麻豆久久久久久久 | 91精品在线观看入口 | xxx老太太 | 视频国产精品 | 国产精品黄色网 | 久久国产精品久久国产精品 | 黑名单上的人全集免费观看 | 亚洲毛片精品 | 四虎影视av | 精品熟妇视频一区二区三区 | 免费观看全黄做爰的视频 | 青青草日本 | 深夜激情网站 | 日韩免费av一区 | 中文字幕在线播放 | 亚洲精品国 | 国产麻豆交换夫妇 | 钰慧的mv视频在线观看 | 日韩手机看片 | 一区二区内射 | 日本中文字幕在线看 | 久久天堂网 | 一级日韩片| 新亚洲天堂 | 能看的毛片 | 久久免费在线观看 | 94av视频| 日韩视频免费观看 | 深夜成人福利视频 | 深夜福利1000 | 热久久国产精品 | 蜜桃精品一区二区 | 国产在成人精品线拍偷自揄拍 | 一区二区三区精彩视频 | 中国黄色三级 |