DataListå页æ¹æ³çæ ¸å¿åçæ¯å©ç¨PagedDataSource对象ï¼PagedDataSourceç±»å°è£
äºDataGrid æ§ä»¶çå±æ§ï¼è¿äºå±æ§ä½¿ DataGrid å¯ä»¥æ§è¡å页ï¼ä¸é¢æ¯PagedDataSourceçå
Œ
±å±æ§ï¼
AllowCustomPaging è·åæ设置æ示æ¯å¦å¯ç¨èªå®ä¹å页çå¼ã
AllowPaging è·åæ设置æ示æ¯å¦å¯ç¨å页çå¼ã
Count è·åè¦ä»æ°æ®æºä½¿ç¨ç项æ°ã
CurrentPageIndex è·åæ设置å½å页çç´¢å¼ã
DataSource è·åæ设置æ°æ®æºã
DataSourceCount è·åæ°æ®æºä¸ç项æ°ã
FirstIndexInPage è·å页ä¸ç第ä¸ä¸ªç´¢å¼ã
IsCustomPagingEnabled è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦å¯ç¨èªå®ä¹å页ã
IsFirstPage è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示å½å页æ¯å¦æ¯é¦é¡µã
IsLastPage è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示å½å页æ¯å¦æ¯æåä¸é¡µã
IsPagingEnabled è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦å¯ç¨å页ã
IsReadOnly è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ°æ®æºæ¯å¦æ¯åªè¯»çã
IsSynchronized è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦åæ¥å¯¹æ°æ®æºç访é®ï¼çº¿ç¨å®å
¨ï¼ã
PageCount è·åæ¾ç¤ºæ°æ®æºä¸çææ项æéè¦çæ»é¡µæ°ã
PageSize è·åæ设置è¦å¨å页ä¸æ¾ç¤ºç项æ°ã
VirtualCount è·åæ设置å¨ä½¿ç¨èªå®ä¹å页æ¶æ°æ®æºä¸çå®é
项æ°ã
é£ä¹å¦ä½ä½¿ç¨ PagedDataSource对象è¿è¡DataListå页å¢ï¼ï¼ç½ä¸æå¾å¤ç讲DataListå页çæç« ï¼æä¸äºæ¯ç³å¼äººçï¼æçè¿æ æ³èµ·ä½ç¨ï¼æ被éªè¿ä¸æ¬¡ï¼æ¬ææ¯æç»è¿ä¸ªäººå®è·µç»éªå¾å°ï¼å¯ä»¥é¡ºå©æ§è¡ãå¸æ对大家ææ帮å©ãï¼
ç°å¨å¼å§æï¼
第ä¸æ¥ï¼ååºæ°æ®å°datatableä¸ï¼ç¶åè·å¾dataviewï¼ä»ç»PagedDataSource对象
DataView objView = objTable.DefaultView;
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objView;
第äºæ¥ï¼PagedDataSource对象objPdsç设置
objPds.AllowPaging = true;
objPds.PageSize = 4;
objPds.CurrentPageIndex = int.Parse(ViewState["pageindex"].ToString());
ä¸é¢çè¿ä¸¤æ®µä»£ç é½æ¯åå¨BindDataï¼ï¼å½æ°ä¸çï¼ä¾æ¯æ¬¡ç¹å»å页æé®æ¶è°ç¨ãBindDataï¼ï¼å½æ°å¦ä¸ï¼
private void BindData()
{
string sql = "SELECT * From team";
DataTable objTable = data.GetDataTable(sql);
if (objTable != null && objTable.Rows.Count > 0)
{
DataView objView = objTable.DefaultView;
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objView;
objPds.AllowPaging = true;
objPds.PageSize = 4;
objPds.CurrentPageIndex = int.Parse(ViewState["pageindex"].ToString());
if (!objPds.IsFirstPage)
{
lkPre.Visible = true;
}
else
{
lkPre.Visible = false;
}
if (!objPds.IsLastPage)
{
lkNext.Visible = true;
}
else
{
lkNext.Visible = false;
}
dlData.DataSource = objPds;
dlData.DataBind();
}
}
å°æ¤ä¸ºæ¢ï¼æ们已ç»å°æ°æ®äº¤ç»äºPagedDataSourceï¼å©ä¸çå页å°å©ç¨PagedDataSource è¿è¡å¤çãå¯è½å¤§å®¶æ³¨æå°äºï¼è¿ä¸ªæ°æ®äº¤ä»æ¯å®æ´çæ°æ®äº¤ä»ï¼å¦ææ°æ®éå¾å¤§ä¼é æä¸å®çæçä½ä¸ï¼ä¸è¿è¿éææ¶ä¸èèè¿ä¸ªé®é¢ãæå
´è¶£çæåå¯ä»¥ä¸èµ·æ¢è®¨ä¸ä¸ã
ä¸é¢ç第ä¸è¡ä»£ç ä¸ç ViewState["pageindex"] æ¯ç¨æ¥æ§å¶PagedDataSourceçå½å页çï¼æ们å¨Page_Loadäºä»¶ä¸å第ä¸æ¥å°è¦å°çå½æ°ä¸æ¥å
·ä½è®²è§£å¦ä½å©ç¨ ViewState["pageindex"]æ§å¶å½å页ã
BindDataï¼ï¼å½æ°ä¸åé¢çé¨åæ¯æ§å¶ååååæé®çæ¾éçï¼ä¸åå¤è¯´ã
第ä¸æ¥ï¼å页æ§å¶
第äºæ¥ä¸è¯´è¿å©ç¨ ViewState["pageindex"] æ¥æ§å¶å½å页ï¼ä¸ºäºå¨é¡µé¢å è½½çæ¶åå°±æ¾ç¤ºç¬¬ä¸é¡µï¼æ们å½ç¶è¦å¨Page_loadäºä»¶ä¸å° ViewState["pageindex"]置为0ã
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageindex"] = "0";
BindData(); }
}
æ们éè¦å 两个æé®ï¼PreviousãNextï¼æ¥ç¹å»è¿è¡å页æ§å¶ã
<asp:DataList ID="dlData" runat="server" RepeatColumns="4" >
<ItemTemplate>
<asp:Label ID="lblName" runat="server" /><br />
<asp:Label ID="lblTime" runat="server" />
</ItemTemplate>
</asp:DataList>
<asp:linkbutton ID="lkPre" OnCommand="IndexChanging" CommandArgument="pre" runat="server" >PREVIOUS PAGE></asp:linkbutton>
<asp:linkbutton ID="lkNext" OnCommand="IndexChanging" CommandArgument="next" runat="server" >NEXT PAGE</asp:linkbutton>
两个æé®ç OnCommandé½æ¯IndexChangingï¼ï¼å½æ°ï¼æ们éè¿CommandArgumentï¼preånextï¼æ¥åºåå°åºæ¯ååç¿»è¿æ¯ååç¿»ãä¸é¢æ¯IndexChangingï¼ï¼å½æ°
protected void IndexChanging(object sender, EventArgs e)
{
string strCommand = ((LinkButton)sender).CommandArgument.ToString();
int pageindex = int.Parse(ViewState["pageindex"].ToString());
if (strCommand == "pre")
{
pageindex = pageindex - 1;
}
else
{
pageindex = pageindex + 1;
}
ViewState["pageindex"] = pageindex;
BindData();
}
è³æ¤ï¼æ们çå页å½æ°å·²ç»åå®äºãè¿éè¿æä¸äºä¸è¥¿æ²¡æ说ï¼æ¯å¦æ¾ç¤ºä¸å
±å¤å°æ¡è®°å½ï¼å½å第å 页ï¼ä¸å
±å¤å°é¡µä»¥åæ¯ä¸é¡µç页ç ãç¸ä¿¡çæäºä¸é¢æ说çåè¿äºä¸è¥¿è¿æ¯å®¹æååºæ¥çã
æ»ç»ä¸ä¸ï¼æ们å¨åå°å好DataListçå¾
æ°æ®ï¼èæ°æ®æ¯ç±PagedDataSourceæä¾çï¼å页éè¿æ们æ°å ç两个ImageButtonæ¥æ§å¶ViewStateè¿èè¾¾å°æ§å¶PagedDataSourceçCurrentPageIndexæ¥å®ç°çãæ以ï¼å
¶å®DataListä¹æ²¡å¹²å¥äºï¼å°±æ¯æ¾ç¤ºäºæ¯ä¸é¡µçæ°æ®èå·²ãæä¸ç¹éè¦è¯´æï¼PagedDataSourceçCurrentPageIndexæ¯ä»0å¼å§çï¼è¿ä¹æ¯ä¸ºä»ä¹å¨Page_loadäºä»¶ä¸è¦è®²ViewState置为0èä¸æ¯1çç¼æ
ã
Asp.netæä¾äºä¸ä¸ªåè½å¼ºå¤§çå表æ§ä»¶ï¼DataGridãDataListåRepeateræ§ä»¶ï¼ä½å
¶ä¸åªæDataGridæ§ä»¶æä¾å页åè½ãç¸å¯¹DataGridï¼DataListåRepeateræ§ä»¶å
·ææ´é«çæ ·å¼èªå®ä¹æ§ï¼æ以å¾å¤æ¶åæ们å欢使ç¨DataListæRepeateræ§ä»¶æ¥æ¾ç¤ºæ°æ®ã
å®ç°DataListæRepeateræ§ä»¶çå页æ¾ç¤ºæå ç§æ¹æ³ï¼
1ãåä¸ä¸ªæ¹æ³æåå¨è¿ç¨ï¼æ ¹æ®ä¼ å
¥ç页æ°è¿åéè¦æ¾ç¤ºçæ°æ®è¡¨ï¼DataTableï¼
2ã使ç¨PagedDataSourceç±»ï¼ä½äºSystem.Web.UI.WebControlså½å空é´éï¼
æ¬ç¯æç« ä¸»è¦è¯´æä¹ä½¿ç¨PagedDataSourceç±»å®ç°DataListåRepeateræ§ä»¶çå页æ¾ç¤ºãDataGridæ§ä»¶å
é¨ä¹ä½¿ç¨äºPagedDataSourceç±»ï¼PagedDataSource ç±»å°è£
DataGrid æ§ä»¶çå±æ§ï¼è¿äºå±æ§ä½¿ DataGrid å¯ä»¥æ§è¡å页ã
PagedDataSource ç±»çé¨åå
Œ
±å±æ§ï¼
AllowCustomPaging è·åæ设置æ示æ¯å¦å¯ç¨èªå®ä¹å页çå¼ã
AllowPaging è·åæ设置æ示æ¯å¦å¯ç¨å页çå¼ã
Count è·åè¦ä»æ°æ®æºä½¿ç¨ç项æ°ã
CurrentPageIndex è·åæ设置å½å页çç´¢å¼ã
DataSource è·åæ设置æ°æ®æºã
DataSourceCount è·åæ°æ®æºä¸ç项æ°ã
FirstIndexInPage è·å页ä¸ç第ä¸ä¸ªç´¢å¼ã
IsCustomPagingEnabled è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦å¯ç¨èªå®ä¹å页ã
IsFirstPage è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示å½å页æ¯å¦æ¯é¦é¡µã
IsLastPage è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示å½å页æ¯å¦æ¯æåä¸é¡µã
IsPagingEnabled è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦å¯ç¨å页ã
IsReadOnly è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ°æ®æºæ¯å¦æ¯åªè¯»çã
IsSynchronized è·åä¸ä¸ªå¼ï¼è¯¥å¼æ示æ¯å¦åæ¥å¯¹æ°æ®æºç访é®ï¼çº¿ç¨å®å
¨ï¼ã
PageCount è·åæ¾ç¤ºæ°æ®æºä¸çææ项æéè¦çæ»é¡µæ°ã
PageSize è·åæ设置è¦å¨å页ä¸æ¾ç¤ºç项æ°ã
VirtualCount è·åæ设置å¨ä½¿ç¨èªå®ä¹å页æ¶æ°æ®æºä¸çå®é
项æ°ã
è¿äºå±æ§æ¯å¦åDataGridçå±æ§å¾ç¸ä¼¼ï¼æ²¡éï¼DataGridæ§ä»¶å°±æ¯ä½¿ç¨PagedDataSourceç±»æ¥å®ç°æ°æ®å页æ¾ç¤ºç ãä¸é¢ä¸¾ä¸ªä½¿ç¨PagedDataSourceç±»å®ç°DataListåRepeateræ§ä»¶çå页æ¾ç¤ºçä¾åï¼
public void Page_Load(Object src,EventArgs e)
{
OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb");
OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Users",objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
//对PagedDataSource 对象çç¸å
³å±æ§èµå¼
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
//å½å页é¢ä»Pageæ¥è¯¢åæ°è·å
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
//æPagedDataSource 对象èµç»Repeateræ§ä»¶
Repeater1.DataSource=objPds;
Repeater1.DataBind();
}
温馨提示:答案为网友推荐,仅供参考