最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

無框架 Ajax分頁(原創(chuàng))第2/2頁

 更新時間:2009年08月07日 00:34:50   作者:  
最近想做一個Ajax的功能,網(wǎng)上一搜幾乎全是基于某某框架的Ajax分頁,要么需給頁面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用類似于jquery的框架。

AjaxProcess.aspx
復(fù)制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxProcess.aspx.cs" Inherits="AjaxDemo.AjaxPager.MyAjaxPager.AjaxProcess" %>
<asp:Repeater ID="rptGrid" runat="server">
<HeaderTemplate>
<table>
<tr>
<th style="border:solid 1px red;">編號</th>
<th style="border:solid 1px red;">姓名</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="border:solid 1px red;"><%# Eval("Id") %></td>
<td style="border:solid 1px red;"><%# Eval("Name") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

注意,這個Ajax處理頁面的aspx部分并不像往常那樣是光禿禿的,只有<% %>內(nèi)的信息,它的下面多了一個repeater控件,細(xì)心的朋友會發(fā)現(xiàn),這個repeater控件和主頁面的repeater控件一摸一樣。就是利用這個repeater控件來生成返回的html內(nèi)容的,具體怎么做,請看代碼:
AjaxProcess.aspx.cs
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;
namespace AjaxDemo.AjaxPager.MyAjaxPager
{
public class Item
{
public string Id
{
get;
set;
}
public string Name
{
get;
set;
}
}
public partial class AjaxProcess : System.Web.UI.Page
{
private int PageSize
{
get { return 10; }
}
private List<Item> GenerateData()
{
List<Item> lstItems = new List<Item>();
for (int i = 1; i <= 1000000; i++)
{
Item it = new Item();
it.Id = i.ToString();
it.Name = "zs" + i;
lstItems.Add(it);
}
return lstItems;
}
private List<Item> GetData(int index)
{
List<Item> lstItem = GenerateData();
List<Item> bdItem = new List<Item>();
int begIndex = (index - 1) * PageSize;
int endIndex = index * PageSize;
for (int i = begIndex; i < endIndex; i++)
{
bdItem.Add(lstItem[i]);
}
return bdItem;
}
private string GetHtml(Control control)
{
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
HtmlTextWriter writer2 = new HtmlTextWriter(writer);
control.RenderControl(writer2);
return sb.ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
int index = 0;
if (int.TryParse(Request.QueryString["index"], out index))
{
//獲取到index再進(jìn)行操作
this.rptGrid.DataSource = this.GetData(index);
this.rptGrid.DataBind();
Response.Clear();
string html = this.GetHtml(rptGrid);
Response.Write(html);
Response.End();
}
}
}
}

代碼相當(dāng)簡單,GenerateData()方法用來生成一個DataSource,GetData(int index)方法用來讀取分頁信息。在Page_Load事件中,會首先獲取請求字符串中的index(頁碼),然后利用index取得當(dāng)前頁的信息并將它綁定到repeater控件上,然后利用GetHtml()方法來獲取綁定數(shù)據(jù)后的repeater控件的html內(nèi)容,將它返回。
Ok,在主頁面的js中。
復(fù)制代碼 代碼如下:

var gridData = xmlHttp.responseText;
var grid = document.getElementById("grid");
grid.innerHTML = gridData;

我們獲取返回的這段html,并將它的內(nèi)容輸出到主頁面的制定div中,到此就成功完成了一次分頁請求。
這是一個簡單的demo,如果有需要,還可以加一些分頁等待過程中的動畫什么的,這里就不詳述了。
以上東西希望可以幫助到有需要的朋友。

相關(guān)文章

最新評論

大关县| 海丰县| 班戈县| 如皋市| 仁怀市| 博白县| 溧水县| 隆回县| 云浮市| 旺苍县| 广东省| 土默特右旗| 张家港市| 兰溪市| 临湘市| 兰溪市| 出国| 泽普县| 江津市| 行唐县| 湘潭市| 溧水县| 浦县| 玉林市| 曲松县| 敖汉旗| 南涧| 天门市| 永平县| 黄龙县| 内丘县| 普定县| 荣成市| 神农架林区| 边坝县| 莱州市| 文水县| 克什克腾旗| 济源市| 达拉特旗| 大石桥市|