生活随笔
收集整理的這篇文章主要介紹了
简单的ASP.NET无刷新分页
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、新建一個(gè)分頁(yè)存儲(chǔ)過(guò)程:
CREATE?procedure?[dbo].[P_Pager] ?(@PageNumber?int, ?@PageSize?int) ?as??declare?@sql?nvarchar(4000) ?????set?@sql?=?'select?top?'?+?Convert(varchar,?@PageSize)???+?'?*?from?T_Test?where?[type]=1?and?id?not?in?(select?top?'?+?Convert(varchar,?(@PageNumber?-?1)?*?@PageSize)??+?'?id?from?T_Test?order?by?id?desc)?order?by?id?desc'??exec?sp_executesql?@sql ?GO? 2、設(shè)置Ajax控件
想要實(shí)現(xiàn)無(wú)刷新,肯定會(huì)用到Ajax,首先是要放入必不可少的:
<asp:ScriptManager?ID="ScriptManager1"?runat="server"> ?</asp:ScriptManager>?接著把Repeater控件嵌入到UpdatePanel里面去:
<asp:UpdatePanel?ID="UpdatePanel1"?runat="server"> ????????????<ContentTemplate> ????????????????????<ul> ????????????????????????<asp:Repeater?ID="Repeater1"?runat="server"> ????????????????????????????<ItemTemplate> ????????????????????????????????<li> ????????????????????????????????????<p> ????????????????????????????????????????<span><%#Eval("username")?%>:</span><%#Eval("content").ToString()))?%></p> ????????????????????????????????????<p> ????????????????????????????????????????<em>發(fā)表時(shí)間: ????????????????????????????????????????????<%#Eval("addtime")?%> ????????????????????????????????????????</em> ????????????????????????????????????</p> ????????????????????????????????</li> ????????????????????????????</ItemTemplate> ????????????????????????</asp:Repeater> ????????????????????</ul> ????????????????????<p> ????????????????????????????總記錄:<asp:Literal?ID="ltlCount"?runat="server"></asp:Literal></p> ????????????????????????<p> ????????????????????????????<webdiyer:AspNetPager?ID="AspNetPager1"?runat="server"?AlwaysShow="true"?PageIndexBoxType="DropDownList"?> ????????????????????????????</webdiyer:AspNetPager> ????????????????????????</p> ????????????????????</div> ????????????</ContentTemplate> ????????</asp:UpdatePanel>?3、AspNetPager分頁(yè)控件
可以看到以上的代碼有個(gè)分頁(yè)控件,我相信這個(gè)分頁(yè)控件大家都不陌生了,我就不多介紹。必須有AspNetPager.dll,然后在項(xiàng)目中引用,在頭部引入這一段代碼:
<%@?Register?Assembly="AspNetPager"?Namespace="Wuqi.Webdiyer"?TagPrefix="webdiyer"?%>?這時(shí)候分頁(yè)控件應(yīng)該就可以使用了。最后在后臺(tái)綁定一下數(shù)據(jù),同時(shí)也要綁定AspNetPager控件,完整的后臺(tái)代碼如下:
using?System; ?using?System.Collections.Generic; ?using?System.Web; ?using?System.Web.UI; ?using?System.Web.UI.WebControls; ?using?System.Data; ?using?Wuqi.Webdiyer; ?using?System.Data.SqlClient; ?? ?public?partial?class?AjaxPager?:?System.Web.UI.Page ?{ ?????int?currentPageNumber;?????int?pageSize?=?5;?????protected?void?Page_Load(object?sender,?EventArgs?e) ?????{ ?????????if?(!IsPostBack) ?????????{ ?????????????currentPageNumber?=?1; ?????????????ViewState["currentPageNumber"]?=?currentPageNumber; ?????????????BindData(); ?????????} ?????????AspNetPager1.PageChanged?+=?new?EventHandler(AspNetPager1_PageChanged);???????} ?? ??????????private?int?GetCount() ?????{ ?????????string?sql?=?"select?COUNT(*)?from?T_Test"; ?????????DataTable?dt?=?GetTable(sql,?CommandType.Text,?values); ?????????if?(dt.Rows.Count?>?0) ?????????{ ?????????????return?Convert.ToInt32(dt.Rows[0][0]); ?????????} ?????????else?????????{ ?????????????return?0; ?????????} ?????} ?????? ??????????private?void?BindData() ?????{ ?????????ltlCount.Text?=?GetCount().ToString(); ?????????currentPageNumber?=?Convert.ToInt32(ViewState["currentPageNumber"]); ?????????SqlParameter[]?values?=?{?new?SqlParameter("@PageNumber",?currentPageNumber),?new?SqlParameter("@PageSize",?pageSize)?}; ?????????? ?????????DataTable?dt?=?GetTable("P_Pager",?CommandType.StoredProcedure,?values);???????????if?(dt.Rows.Count?>?0) ?????????{ ?????????????AspNetPager1.PageSize?=?pageSize; ?????????????AspNetPager1.RecordCount?=?GetCount(); ?????????????AspNetPager1.CurrentPageIndex?=?currentPageNumber; ?????????????this.Repeater1.DataSource?=?dt.DefaultView; ?????????????this.Repeater1.DataBind(); ?????????} ?????} ?? ??????????void?AspNetPager1_PageChanged(object?sender,?EventArgs?e) ?????{ ?????????currentPageNumber?=?AspNetPager1.CurrentPageIndex; ?????????ViewState["currentPageNumber"]?=?currentPageNumber; ?????????BindData(); ?????} ?????? ???????????private?DataTable?GetTable(string?sql,?CommandType?t,?params?SqlParameter[]?values) ?????{ ?????????using?(SqlConnection?conn?=?new?SqlConnection("Data?Source=127.0.0.1;Initial?Catalog=testDB;Persist?Security?Info=True;User?ID=sa;Password=123456")) ?????????{ ?????????????SqlCommand?comm?=?new?SqlCommand(sql,?conn); ?????????????comm.CommandType?=?t; ?????????????if?(values?!=?null?&&?values.Length?>?0) ?????????????????comm.Parameters.AddRange(values); ?????????????SqlDataAdapter?da?=?new?SqlDataAdapter(comm); ?????????????DataSet?ds?=?new?DataSet(); ?????????????try?????????????{ ?????????????????conn.Open(); ?????????????????da.Fill(ds); ?????????????????return?ds.Tables[0]; ?????????????} ?????????????catch?(Exception) ?????????????{ ?????????????????return?null; ?????????????} ?????????????finally?????????????{ ?????????????????conn.Close(); ?????????????????conn.Dispose(); ?????????????} ?????????} ?????} ?}?
轉(zhuǎn)載于:https://www.cnblogs.com/nianyuwen/archive/2012/06/29/2570537.html
總結(jié)
以上是生活随笔為你收集整理的简单的ASP.NET无刷新分页的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。