AspNetPager分頁記錄顯示執行個體,aspnetpager分頁

來源:互聯網
上載者:User

AspNetPager分頁記錄顯示執行個體,aspnetpager分頁

           在牛腩視頻中的最後一集,涉及到了一個外部控制項AspNetPager實現分頁記錄顯示的一個小例子沒有完成,據瞭解分頁顯示功能在軟體設計中是很重要的一個功能,因此,在這裡講未完成的工作完成。

      在視頻中講到,gridview的分頁功能屬於假分頁,為什麼呢?因為每次分頁必須查詢完資料庫中所有的記錄,這樣如果資料量過大,將會造成很大不便。所以選擇了AspNetPager這個控制項。

     其實,這個控制項只是提供了一個分頁功能,它並不能顯示資料,因此,它還是需要與gridview結合起來使用才可以完全實現我們分頁的這個功能。

    當然gridview這個控制項的使用,視頻中有用到,但是由於多次複製粘貼的緣故,到後來很難回憶出當時到底是如何使用的了。其實這個控制項主要有這麼幾個關鍵注意的點,如下:

     1、在編輯列時,由於過長代碼,可選擇在設計檢視中進行編輯

     2、若想與css結合設計表格的樣式,可將列轉換為自訂模板列如所示:

     3、autogenericcolumns這個屬性的應用

好了,瞭解了控制項使用後,我們就來利用它們實現分頁製作吧!

首先,通過預存程序來編寫資料庫查詢語句,如下:

ALTER PROCEDURE [dbo].[partPage]@startIndex int, --查詢開始記錄數@endIndex int    --結束記錄數ASBEGINwith temptbl as (SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS 行號, * from news  --使得記錄按順序排列,按行號查詢)SELECT * FROM temptbl where 行號 between @startIndex and @endIndexEND

編寫完預存程序後,便是D層要寫的代碼,如下:

  public DataTable SelectByPage(int startIndex,int endIndex)        {            DataTable dt = new DataTable();            string cmdText = "partPage";            SqlParameter[] paras = new SqlParameter[]{                new SqlParameter ("@startIndex",startIndex ),                new SqlParameter ("@endIndex",endIndex )            };            dt = sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure);            return dt;        }

sqlhelper中的代碼不便,如下:

 /// <summary>        /// 執行帶參數的查詢語句        /// </summary>        /// <param name="sql">sql語句</param>        /// <param name="paras">參數</param>        /// <returns>datatable</returns>        public DataTable ExecuteQuery(string cmdText,SqlParameter []paras,CommandType ct)        {            DataTable dt = new DataTable();            cmd = new SqlCommand(cmdText , GetConn());            cmd.Parameters.AddRange(paras);            cmd.CommandType = ct;            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))            {                               dt.Load(sdr);            }            return dt;        }

好了,後台大部分工作已準備齊全,就只剩U層代碼了:

聲明:在這裡是按照視頻中那樣在設計中指定了每頁顯示5條新聞,如果在代碼中寫也是可以的,可以寫入asp.pagesize=5;

protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack )            {                DataTable dt = new DataTable();                dt = new NewsManager().SelectAll();//選擇所有新聞                anp.RecordCount = dt.Rows.Count; //記錄總數                 //開始綁定記錄                int startIndex=anp.StartRecordIndex ; //開始記錄數                int endIndex=anp.EndRecordIndex ; //結束記錄數                dt = new NewsManager().SelectByPage(startIndex, endIndex);                gvNews.DataSource = dt;                gvNews.DataBind();            }        }        protected void anp_PageChanged(object sender, EventArgs e)        {            Response.Write("開始記錄數為:" + anp.StartRecordIndex + "結束記錄數為:" +anp.EndRecordIndex );        }

好了,至此,基本上的架構就已經實現了,那麼我們來看一下效果吧!


看著還不錯吧???


vs08裡怎使用AspNetPager分頁控制項對動態查詢的結果進行分頁最好要有執行個體

首先<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>,是必須的 放在aspx檔案的第二行。
然後 <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true"
ShowPageIndexBox="Always" PageIndexBoxType="DropDownList" TextBeforePageIndexBox="跳轉: "
HorizontalAlign="right" PageSize="12" OnPageChanged="AspNetPager1_PageChanged"
EnableTheming="true">
</webdiyer:AspNetPager>
放到你要的分頁的位置上。

最後在cs的page_load事件裡綁定 AspNetPager1.RecordCount = 你所需檢索的資訊的總數。

如果你想實現無重新整理的話,可以使用jq的回調自動無重新整理顯示。
 
我用的ASPnetpager 分頁 我搜尋條件出來以後顯示三頁資料 點下一頁為何 又載入的是全部資料?

你用的是post方式提交的,改成get方式就可以。
用post方式提交也可以,你必須要把參數記下來,分頁時也要把相應的參數傳遞過去,這才管用。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.