成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單的ASP.NET無刷新分頁

開發(fā) 后端
前段時(shí)間做個(gè)留言板的功能,業(yè)務(wù)要求需要對留言列表的查看翻頁無刷新,所以做了以下的無刷新分頁功能,雖然比較簡單,但是涉及到的知識面蠻多的,我記錄一下制作的步驟與心得,僅供參考。如有哪里不足,希望大家指出,有更好的方法,也可以提出來,大家一起學(xué)習(xí)。

前段時(shí)間做個(gè)留言板的功能,業(yè)務(wù)要求需要對留言列表的查看翻頁無刷新,所以做了以下的無刷新分頁功能,雖然比較簡單,但是涉及到的知識面蠻多的,我記錄一下制作的步驟與心得,僅供參考。如有哪里不足,希望大家指出,有更好的方法,也可以提出來,大家一起學(xué)習(xí)。

  1、新建一個(gè)分頁存儲過程:

  1. CREATE procedure [dbo].[P_Pager]  
  2. (@PageNumber int,  
  3. @PageSize int)  
  4. as 
  5.  declare @sql nvarchar(4000)  
  6.     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' 
  7.  exec sp_executesql @sql  
  8. GO 

 2、設(shè)置Ajax控件

  想要實(shí)現(xiàn)無刷新,肯定會用到Ajax,首先是要放入必不可少的:

  1. <asp:ScriptManager ID="ScriptManager1" runat="server">  
  2. </asp:ScriptManager> 

接著把Repeater控件嵌入到UpdatePanel里面去:

  1. <asp:UpdatePanel ID="UpdatePanel1" runat="server">  
  2.            <ContentTemplate>  
  3.                    <ul>  
  4.                        <asp:Repeater ID="Repeater1" runat="server">  
  5.                            <ItemTemplate>  
  6.                                <li>  
  7.                                    <p>  
  8.                                        <span><%#Eval("username") %>:</span><%#Eval("content").ToString())) %></p>  
  9.                                    <p>  
  10.                                        <em>發(fā)表時(shí)間:  
  11.                                            <%#Eval("addtime") %>  
  12.                                        </em>  
  13.                                    </p>  
  14.                                </li>  
  15.                            </ItemTemplate>  
  16.                        </asp:Repeater>  
  17.                    </ul>  
  18.                    <p>  
  19.                            總記錄:<asp:Literal ID="ltlCount" runat="server"></asp:Literal></p>  
  20.                        <p>  
  21.                            <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="true" PageIndexBoxType="DropDownList" >  
  22.                            </webdiyer:AspNetPager>  
  23.                        </p>  
  24.                    </div>  
  25.            </ContentTemplate>  
  26.        </asp:UpdatePanel> 

3、AspNetPager分頁控件

  可以看到以上的代碼有個(gè)分頁控件,我相信這個(gè)分頁控件大家都不陌生了,我就不多介紹。必須有AspNetPager.dll,然后在項(xiàng)目中引用,在頭部引入這一段代碼:

  1. <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 

這時(shí)候分頁控件應(yīng)該就可以使用了。***在后臺綁定一下數(shù)據(jù),同時(shí)也要綁定AspNetPager控件,完整的后臺代碼如下:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Web;  
  4. using System.Web.UI;  
  5. using System.Web.UI.WebControls;  
  6. using System.Data;  
  7. using Wuqi.Webdiyer;  
  8. using System.Data.SqlClient;  
  9.    
  10. public partial class AjaxPager : System.Web.UI.Page  
  11. {  
  12.     int currentPageNumber;//當(dāng)前頁號   
  13.     int pageSize = 5;//每頁顯示記錄條數(shù)  
  14.     protected void Page_Load(object sender, EventArgs e)  
  15.     {  
  16.         if (!IsPostBack)  
  17.         {  
  18.             currentPageNumber = 1;  
  19.             ViewState["currentPageNumber"] = currentPageNumber;  
  20.             BindData();  
  21.         }  
  22.         AspNetPager1.PageChanged += new EventHandler(AspNetPager1_PageChanged);  //定義控件分頁事件  
  23.     }  
  24.    
  25.     //獲取記錄總數(shù)  
  26.     private int GetCount()  
  27.     {  
  28.         string sql = "select COUNT(*) from T_Test";  
  29.         DataTable dt = GetTable(sql, CommandType.Text, values);  
  30.         if (dt.Rows.Count > 0)  
  31.         {  
  32.             return Convert.ToInt32(dt.Rows[0][0]);  
  33.         }  
  34.         else 
  35.         {  
  36.             return 0;  
  37.         }  
  38.     }  
  39.        
  40.     //綁定數(shù)據(jù)  
  41.     private void BindData()  
  42.     {  
  43.         ltlCount.Text = GetCount().ToString();  
  44.         currentPageNumber = Convert.ToInt32(ViewState["currentPageNumber"]);  
  45.         SqlParameter[] values = { new SqlParameter("@PageNumber", currentPageNumber), new SqlParameter("@PageSize", pageSize) };  
  46.            
  47.         DataTable dt = GetTable("P_Pager", CommandType.StoredProcedure, values);  //調(diào)用存儲過程  
  48.         if (dt.Rows.Count > 0)  
  49.         {  
  50.             AspNetPager1.PageSize = pageSize;  
  51.             AspNetPager1.RecordCount = GetCount();  
  52.             AspNetPager1.CurrentPageIndex = currentPageNumber;  
  53.             this.Repeater1.DataSource = dt.DefaultView;  
  54.             this.Repeater1.DataBind();  
  55.         }  
  56.     }  
  57.    
  58.     //分頁事件   
  59.     void AspNetPager1_PageChanged(object sender, EventArgs e)  
  60.     {  
  61.         currentPageNumber = AspNetPager1.CurrentPageIndex;  
  62.         ViewState["currentPageNumber"] = currentPageNumber;  
  63.         BindData();  
  64.     }  
  65.        
  66.      // 讀取存儲過程返回table  
  67.     private DataTable GetTable(string sql, CommandType t, params SqlParameter[] values)  
  68.     {  
  69.         using (SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=testDB;Persist Security Info=True;User ID=sa;Password=123456"))  
  70.         {  
  71.             SqlCommand comm = new SqlCommand(sql, conn);  
  72.             comm.CommandType = t;  
  73.             if (values != null && values.Length > 0)  
  74.                 comm.Parameters.AddRange(values);  
  75.             SqlDataAdapter da = new SqlDataAdapter(comm);  
  76.             DataSet ds = new DataSet();  
  77.             try 
  78.             {  
  79.                 conn.Open();  
  80.                 da.Fill(ds);  
  81.                 return ds.Tables[0];  
  82.             }  
  83.             catch (Exception)  
  84.             {  
  85.                 return null;  
  86.             }  
  87.             finally 
  88.             {  
  89.                 conn.Close();  
  90.                 conn.Dispose();  
  91.             }  
  92.         }  
  93.     }  

至此,基本大功告成,雖然比較簡單,但是涉及到存儲過程,Ajax,分頁控件等知識點(diǎn),還是蠻值得收藏和學(xué)習(xí)的,希望我的這篇文章是拋磚引玉,讓大家提供更好的方法,才是我學(xué)習(xí)的動(dòng)力。求知若饑,虛心若愚。

原文鏈接:http://www.cnblogs.com/yangyy753/archive/2012/04/12/2444411.html

【編輯推薦】

  1. ASP.NET顯示漸變圖片
  2. 詳細(xì)解讀ASP.NET的異步
  3. ASP.NET MVC3 從零開始一步步構(gòu)建Web
  4. ASP.NET頁面優(yōu)化:性能提升8倍的方法
  5. 另類的ASP.NET快速開發(fā)架構(gòu)體系
責(zé)任編輯:林師授 來源: 會編程的羊的博客
相關(guān)推薦

2009-07-28 14:47:18

ASP.NET MVC

2010-03-19 09:17:16

ASP.NET MVC

2010-08-02 09:18:39

ASP.NET MVC

2009-11-06 09:23:41

ASP.NET高效分頁

2009-09-10 09:50:47

ASP.NET MVC

2009-07-30 14:26:30

ASP.NET常用代碼

2009-07-30 14:32:18

ASP.NET常用代碼

2009-07-29 11:18:21

ASP.NET連接My

2012-04-23 15:10:18

ASP.NET

2009-07-22 16:02:39

ASP.NET MVCPagedList

2009-08-04 14:23:36

ASP.NET查詢分頁

2009-08-12 18:19:46

ASP.NET報(bào)表打印

2009-08-12 14:10:37

asp.net分頁代碼

2009-07-22 17:45:35

ASP.NET教程

2011-06-28 15:14:10

ASP.NET性能優(yōu)化

2009-07-31 08:56:59

ASP.NET頁面刷新

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-08-14 13:20:29

ASP.NET Gri

2009-07-28 13:20:38

ASP.NET筆試題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人精品鲁一区一区二区 | 中文字幕在线第一页 | 久久久做 | 国产不卡一区 | 亚洲精品九九 | 亚洲一二三区精品 | 久草欧美 | 久久成人人人人精品欧 | 久久久久久久久国产精品 | 欧美男人的天堂 | 在线91| 日韩电影在线一区 | 久久久国产一区 | 欧美视频三级 | 亚洲成人福利在线观看 | 一区二区精品 | 在线播放精品视频 | 国产高清视频一区 | 欧美精品综合 | 日韩av在线免费 | 亚洲精品一级 | 夜夜草视频 | 在线观看视频一区 | 91黄色片免费看 | 毛片久久久 | 亚洲日本免费 | 国产在线永久免费 | 中文字幕一区二区三区四区五区 | 国产91久久精品一区二区 | 中文字幕在线观看一区二区 | 色爽女 | 亚洲精品456| 午夜精品久久久久久久99黑人 | 亚洲精品久久嫩草网站秘色 | 在线激情视频 | 国产激情免费视频 | 天堂久久网 | 中文字幕av在线 | 精品久久久久久亚洲精品 | 精品真实国产乱文在线 | 久久久涩|