/*
豆腐制作 都是精品
http://www.asp888.net 豆腐技术站
如转载 请保留完整版权信息
*/
昨天我们看了 豆腐利用 asp.net 的特性作的 栏目管理的程序的第一部分,在今天的第二部分中,豆腐将把 昨天我们录入界面录入的数据显示出来,并且在这个部分,专门做了一个 用来进行分页管理的一个Pagelet,通过这个pagelet 我们将 Select 出来的记录进行了分页的处理,并且复习了我们以前的文章如何在asp+ 中使用自定义的pagelet通过这个程序,我们将会学习到在 asp.net 的编程中的一些中级的技术(其实更为高级的技术,我们在目前)的学习和应用的过程中,似乎还没有用到!不对,不对,是豆腐没有用到:)下面我们首先来看看我们作的这个ascx文件:也叫用户自定义组件文件
c.ascx:
1@ Import Namespace="System.Data"
1@ Import Namespace="System.Data.SQL"
1 @ Import Namespace="System.Drawing"
1<script language="C#" runat="server">
2public SQLDataReader sRead; //这个是绑定的数据
3public int intPageCount=5; //这个是每页需要显示的数据的多少 默认是10
4public int intRecStart=0; //这个是当前数据的 起使位置, 默认是 0
5public int intCurrentRow=0; //当前的Row 指针所在的位置
6public int intRecCount; //当前的这个查询的记录总数
7
8public void DataBind(){
9int i;
10for(i=0;i<intRecStart;i++){
11sRead.Read();
12}
13}
14public String GetVal(String strName){
15sRead.Read();
16return sRead[strName].ToString();
17}
18public bool MyRead(){
19if(!sRead.Read())
20return false;
21if(intCurrentRow==intPageCount)
22return false;
23intCurrentRow++;
24return true;
25}
26public void PageBar(){
27TableCell c;
28TableRow r = new TableRow();
29c= new TableCell();
30int ii=intRecCount;
31//(ArrayList)sRead;
32String strWrite;
33if(intRecStart==0){
34strWrite="首页 上页";
35}
36else
37{
38strWrite="<a href='c.aspx?start=0'>首页</a> <a href='c.aspx?start=" + (intRecStart-intPageCount).ToString() + "'>上页</a>";
39}
40if((intRecStart+intPageCount)>ii){
41strWrite= strWrite + " 首页 上页";
42}
43else{
44strWrite= strWrite + "<a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() +"'>下页</a> <a href='c.aspx?start=" + (intRecStart+intPageCount).ToString() + "'>末页</a>";
45}
46c.Controls.Add(new LiteralControl(strWrite));
47r.Cells.Add(c);
48
49c = new TableCell(); //生成新的一列
50c.Controls.Add(new LiteralControl("共有记录" + ii.ToString()));
51r.Cells.Add(c);
52
53Table1.Rows.Add(r);
54}
55</script>
1<asp:table font-name="Verdana" font-size="8pt" gridlines="Both" horizontalalign="Center" id="Table1" runat="server" width="100%"></asp:table>
然后,我们可以通过语句:
1@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx"
可以把c.ascx 文件加入到 任意一个aspx 文件中,而且,我们可以在 aspx 文件中对 我们的这个 ascx 文件中的 public 定义的
参数进行Get 和 Set 的操作,就如同 操作
1<asp:textbox> 的属性和方法是一样的,大家在这里一定要特别注意
2<asp888:mypagetable id="menuControl1" runat="server"></asp888:mypagetable>,这个就是我们在 通过 ```
3 Register &gt;中定义的PreFix 和 TagName
4来组成的,这样我们通过这个程序,模拟了DataGrid 的 DataBind 的操作,同时也实现了分页的自动化
5&lt;%@ Import Namespace="System.Data"
1@ Import Namespace="System.Data.SQL"
1@ Register TagPrefix="asp888" TagName="myPageTable" Src="c.ascx"