分頁

1.首先在數據庫中建立一個視圖(在aspx中sql查詢語句是view_student不是student),在視圖里創建
create view view_student--創建視圖
as row_number 行號 一條數據是一行 分頁功能要根據行數運算
select *,row_number() over(order by stuNo desc) as rowindex from Student
創建一個名為rowindex的字段,row_number() 函數是返回行號,要與over連用
2.在項目中創建一個studentlist.aspx.repeateList控件用戶重復的數據簡單化,
-----------在studentList.aspx 中的代碼
<table>
<tr>
<td>序號</td>
<td>學號</td>
<td>姓名</td>
<td>性別</td>
<td>年齡</td>
<td>操作</td>
</tr>
<asp:Repeater ID="rptStudent" runat="server">
<ItemTemplate>Repeater如果是一個表格,那么它就有多個行組成的,而它的每一行顯示的數據,就是由ItemTemplate控制的
<tr>
<td><%#Eval("rowindex")%></td>--------------<%#Eval("字段")%>用于綁定數據
<td><%#Eval("stuNo")%></td>
<td><%#Eval("stuName")%></td>
<td><%#Eval("sex")%></td>
<td><%#Eval("birthday")%></td>
<td>操作</td>
</tr>
</ItemTemple>
</asp:Repeater>
</table>
--------------------在studentList.aspx.cs 中的代碼
在直觀的瀏覽器中分頁要理解的是多少頁,一頁有多少行(pageindex,pagesize)pageindex當前頁碼pagesize當前頁碼有幾條數據
如何將數據庫中幾百萬的數據引進來,分開要用什么方法,
在dal層中定義方法-----------------------------------------------------------------------------------
public int GetRecordCount()//獲取學生總數,方便用于分多少頁,一頁包括多少數據,方便計算
{
string sql="select count(*) from Student";
return (int)Sqlhelper.GetSingleData(sql);
}
public DataSet GetPageindexData(int pageindex,int pagesize)將總數分成幾頁,一頁幾條數據,數據成“團”出現,用set返回
{
從view_Student中獲取數據
string sql="select * from view_Student where rowindex between @startrowindex and @endrowindex";
sqlparameter[] sps={
new sqlparameter("@starrowindex",(pageindex-1)*pagesize+1),
new sqlparameter("@endrowindex",pageindex*pagesize)
};
return sqlhelper.Getdataset(sql,sps);
}
在DAL中定義方法,在BLL中調用一下方法
-------------在BLL中定義一下方法
public int GetRecordCount()
{
return stuDal.GetRecordCount(); 要現在DAl中實例化一下Student,才可以調用一下stuDal.GetRecordCount();
}
public DataSet GetPageindexData(int pageindex, int pagesize)
{
return stuDal.GetPageindexData(pageindex,pagesize);
}
---------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindRepeater(1,3);//(a,b)a代表第幾頁,b代表有幾個數據
}
}
public void bindRepeater(int pageindex,int pagesize)
{
Student stubll=new Student();
rptStudent.DataSource =stubll.GetpageindexData(pageindex, pagesize);控件的數據來源
rptstudent.DataBind();綁定數據
}
----------------------------
create view_student create view View_Student as select *,Row_Number(),over(order by StuNo desc) as rowindex from Student
as
select *,Row_Number(), over() as rowindex from student
--------------------------------------------------------------------------------------------------
將出生日期裝換成年齡
public static GetAge(object birthday)//需要傳參數
{
int NowYear=DateTime.Now.year;
int OldYear=((DateTime)birthday).Year;
return (NoweYear-OldYear).ToString();
}
在.aspx 的頁面綁定數據的頁面<td><%#GetAge(Eval("birthday"))%></td>這樣調用方法,把數據綁定上面
---------------------------------------------------------------------------------------------------------
上下頁 需要考慮的是 一共多少數據,每個頁面存放多少數據,
當pageindex<=1時,builder.Append(" 首頁 下一頁");
else
builder.Append(<a href='href="StudentList.aspx?pindex=1"'>首頁</a>);變成超鏈接
builder.Append(<a href='href="StudentList.aspx?pindex='"+(pindex-1)+"'"'>上一頁頁</a>);變成超鏈接
當pageindex=pageCount時
if(pageindex==pageCount)
{
builder.Append(" 下一頁 末頁");
}
else
{
builder.Append("<a href='StudentList.aspx?pindex=" + (pageindex + 1) + "'>下一頁</a>");
builder.Append("<a href='StudentList.aspx?pindex="+pageCount+"'>末頁<a/>");
}
!!----------!!! Pager = builder.ToString();
<%=%> 里面放的變量名 <p>Welcome to Beginning ASP.NET 3.5 on <%= DateTime.Now.ToString() %></p>
Welcome to Beginning ASP.NET 3.5 on 2009-11-10 15:53:08
<%#%> 這里是數據的綁定 只能用在數據綁定控件中

----------------------------------------------------------------------------------------------------------
public string GetPager(ref int pageindex, int pagecount)
{
if (pageindex < 1)//如果頁碼<1,則當前頁碼為第一頁
{
pageindex = 1;
}
if (pageindex > pagecount)
{
pageindex = pagecount;
}
StringBuilder sb = new StringBuilder();
if (pageindex == 1)
{
sb.Append(" 首頁 上頁");
}
else
{
sb.Append(" <a href='javascript:LoatData(1)'>首頁</a>");
sb.Append(" <a href='javascript:LoatData(" + (pageindex - 1) + ")'>上頁</a>");
}
if (pageindex == pagecount)
{
sb.Append(" 下頁 末頁 ");
}
else
{
sb.Append(" <a href='javascript:LoatData(" + (pageindex + 1) + ")'>下頁</a> ");
//sb.Append(" <a herf='javascript:LoatData(" + (pagecount) + ")'>末頁</a>");
sb.Append(" <a href='javascript:LoatData(" + (pagecount) + ")'>末頁</a>");
}
return sb.ToString();
}

?

          <div class="page_nav"> <%=Pager%> </div>public string Pager { set; get; }int RecordCount, PageCount, PageSize, PageIndex;protected void Page_Load(object sender, EventArgs e){//先獲數據庫里取有多少條數據RecordCount = ProductBLL.GetRecordCount();PageSize = 2;PageCount=(int)Math.Ceiling(RecordCount*1.0/PageSize);PageIndex =1;//定義開始從第一頁開始if (!string.IsNullOrEmpty(Request["pindex"])){ PageIndex=Convert.ToInt32(Request["pindex"]);}if (!IsPostBack){//下方注釋不能刪除//ProductList = ProductBLL.GetProduct();//Repeater1.DataSource = ProductBLL.GetProduct();//Repeater1.DataBind();ViewState["pindex"] = PageIndex;DataTable dt = Binder(PageIndex,PageSize);Repeater1.DataSource = dt;Repeater1.DataBind();GetPager(PageIndex, PageCount);}}public void GetPager(int pageindex, int pagesize){if (pageindex < 1){ PageIndex=1;}if (pageindex > PageCount){pageindex = PageCount;}StringBuilder sb = new StringBuilder();if (pageindex < 1){sb.Append("首頁~~~上一頁");}else{sb.Append("<a href='?pindex=1'>首頁~~~</a>");sb.Append("<a href='Product.aspx?index="+(pageindex-1)+"'>上一頁</a>");}if (pageindex == PageCount){sb.Append("~~~下一頁 末頁");}else{sb.Append("<a href='Product.aspx?pindex=" + (pageindex + 1) + "'>~~~下一頁~~~</a>");sb.Append("<a href='?pindex="+PageCount+"'>末頁</a>");}Pager = sb.ToString();}
View Code

?

轉載于:https://www.cnblogs.com/ZkbFighting/p/8145352.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252592.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NFS服務端的安裝

執行以下四步操作即可完成在虛擬機上安裝完成NFS的服務端&#xff1a;第一步&#xff1a;在虛擬機上安裝nfs服務&#xff1a; sudo apt install nfs-kernel-server 第二步&#xff1a;修改文件 sudo vi /etc/exports 在文件末尾增加 /home/zzf/hisi-sdk 192.16…

【C++STL/紅黑樹】POJ 3481 DoubleQueue

POJ 3481 Double Queue 描述&#xff1a; 新成立的BIG-Bank在不切雷斯特開了一間新辦公室,使用了由IBM羅馬尼亞的現代計算機辦公環境,運用了現代信息技術.一般來說,銀行的每個顧客都有一個識別碼K,并且每一個來銀行的顧客都會被給予一個優先級P.銀行主管的一個大膽想法震驚了公…

基礎表單筆記

表單數據要向服務端提交的話 每個表單都要指定一些屬性就是name""和value"" value就是用戶寫什么就是什么 來提交name就是對這個表單進行一個標識 <from> 輸入用戶名<input type"text" name"user" value""/>這…

PCIE總線-PCI、PCIE關系及信號定義

PCI(Peripheral Component Interconnect)總線規范在上世紀九十年代由Intel提出。在處理器體系結構中&#xff0c;PCI總線屬于局部總線(Local Bus)。局部總線作為系統總線的延伸&#xff0c;主要功能是為了連接外部設備。 處理器主頻的不斷提升&#xff0c;要求速度更快&#x…

SQL Server:SQL Like 通配符特殊用法:Escape

%&#xff1a;匹配零個及多個任意字符&#xff1b; _&#xff1a;與任意單字符匹配&#xff1b; []&#xff1a;匹配一個范圍&#xff1b; [^]&#xff1a;排除一個范圍 &#xff1b;-&#xff1a;連字符 Symbol Meaning like 5[%] 5% like [_]n _n like [a-cdf] a, b, c, d, o…

案例篇-HBase RowKey 設計指南

1.為什么 Rowkey 這么重要 1.1 RowKey 到底是什么 我們常說看一張 HBase 表設計的好不好&#xff0c;就看它的 RowKey 設計的好不好。可見 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么?RowKey 的特點 如下: 類似于 MySQL、Oracle 中的主鍵&#xff0c;用于標示唯一的行…

PCIe簡介及引腳定義

隨著現代處理器技術的發展&#xff0c;在互連領域中&#xff0c;使用高速差分總線替代并行總線是大勢所趨。與單端并行信號相比&#xff0c;高速差分信號可以使用更高的時鐘頻率&#xff0c;從而使用更少的信號線&#xff0c;完成之前需要許多單端并行數據信號才能達到的總線帶…

IDEA下搜狗輸入法輸入中文時卡著不動的參考解決方法

【問題描述】 在IntelliJ IDEA工具的java編輯窗口&#xff0c;給代碼增加注釋時發現&#xff0c;輸入中文時&#xff0c;搜狗輸入法界面不動&#xff0c;只顯示第一個字母。如圖&#xff1a; 我想輸入“根據”兩個字&#xff0c;但搜狗輸入法界面一直卡著不刷新&#xff0c;導…

6U VPX板卡資料:6U VPX 高性能計算存儲板卡

6U VPX板卡資料&#xff1a;6U VPX 高性能計算存儲板卡_hexiaoyan827的博客-CSDN博客_vpx板卡

Android: Custom View和include標簽的區別

Custom View&#xff0c; 使用的時候是這樣的&#xff1a; <com.example.home.alltest.view.MyCustomViewandroid:id"id/customView"android:layout_width"match_parent"android:layout_height"wrap_content"></com.example.home.allte…

七 web爬蟲講解2—urllib庫爬蟲—狀態嗎—異常處理—瀏覽器偽裝技術、設置用戶代理...

如果爬蟲沒有異常處理&#xff0c;那么爬行中一旦出現錯誤&#xff0c;程序將崩潰停止工作&#xff0c;有異常處理即使出現錯誤也能繼續執行下去 1.常見狀態嗎 301&#xff1a;重定向到新的URL&#xff0c;永久性302&#xff1a;重定向到臨時URL&#xff0c;非永久性304&#x…

DVI和HDMI中的TMDS接口協議

TMDS&#xff08;Transition Minimized Differential signal&#xff09;&#xff0c;即過渡調制差分信號&#xff0c;也被稱為最小化傳輸差分信號&#xff0c;是指通過異或及異或非等邏輯算法將原始信號數據轉換成10位&#xff0c;前8為數據由原始信號經運算后獲得&#xff0c…

君子眼中皆好人

從前有個國王&#xff0c;在晚年時思量 著&#xff1a;“我有兩個兒子&#xff0c;我應該把王位傳給哪個兒子來統治這個國家呢&#xff1f;”國王決定考驗一下他的兩位王子&#xff0c;哪位最是忠義仁厚&#xff0c;愛護老百姓的明君。國王叫來長子&#xff0c; 對他說&#xf…

GS使用HTTPS登錄的設置過程

1. Windows 增加角色服務 服務器配置管理器&#xff0c; 添加角色服務 增加角色功能里面有&#xff1a; 證書頒發機構 證書頒發機構 web注冊 2. AD CS配置 主要是next操作 獨立ca 根證書 等 3. inetmgr申請證書 在機器名的一層及上面申請證書 保存證書信息 用來使用CA機構進行簽…

TMDS的信號通道

1 TMDS的信號通道&#xff1a; 1個HDMI包括3個TMDS數據通道和1個TMDS時鐘通道。 . 每一個TMDS時鐘周期內&#xff0c;TMDS數據通道上會發送一個10位的字符信息&#xff1b; . 每個TMDS時鐘周期內&#xff0c;編碼器將2位的控制數據、4位的報數據或者8位的視頻數據采取不同 …

[luoguP2774] 方格取數問題(最大點權獨立集)

傳送門 引入兩個概念&#xff1a; 最小點權覆蓋集&#xff1a;滿足每一條邊的兩個端點至少選一個的最小權點集。 最大點權獨立集&#xff1a;滿足每一條邊的兩個端點最多選一個的最大權點集。 現在對網格染色&#xff0c;使得相鄰兩點顏色不同&#xff0c;之后把兩個顏色的點分…

docker入門之容器網絡

docker入門之容器網絡首發&#xff1a;arppinging.com一、網絡命名空間1&#xff09;IP命令2&#xff09;實例二、網絡模型三、容器中常見的網絡操作1&#xff09;指定網絡模式2&#xff09;指定容器的dns地址和hosts解析四、網橋配置一、網絡命名空間1&#xff09;IP命令查看i…

光譜分布、光譜輻射通量密度與不同時間段分布光譜(圖示)

1、光譜分布圖 2 太陽輻射能量圖 3、不同時間段的太陽分布光譜圖 4、不同波長的光的能量分布主要區域 5、不同波段的使用場景

$.ajax()方法詳解

相關鏈接&#xff1a;http://blog.csdn.net/denghejing/article/details/41087581轉載于:https://www.cnblogs.com/Steven5007/p/8191275.html

【從零開始】Python字符串的操作方法

1. 字符串長度 #strlen(str)       # 字符串長度函數名str apples    # 把字符串 "apples" 賦值給變量 strprint (len(str))      # 打印字符串的長度 2. 查找字符 #strchr(str1,str2)      # 查找字符函數名str1 apples      …