利用Request对象的CurrentExecutionFilePath做分页

本文介绍了一个使用ASP.NET实现数据库分页显示的方法,并通过页面导航实现前后页切换的功能。文章详细展示了如何设置分页数据源及如何根据用户点击更新导航链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CurrentExecutionFilePath的解释上:获取当前请求的虚拟路径。

见代码:

ContractedBlock.gifExpandedBlockStart.gif后台
1 protected void Page_Load(object sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 databind();
6 this.HyperLink1.Visible = true;
7 this.HyperLink4.Visible = true;
8 }
9 }
10 public void databind()
11 {
12 SqlConnection con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True");
13 SqlCommand cmd = new SqlCommand("select * from Customers", con);
14 SqlDataAdapter da = new SqlDataAdapter(cmd);
15 DataSet ds = new DataSet();
16 da.Fill(ds);
17 PagedDataSource ps = new PagedDataSource();
18 ps.DataSource = ds.Tables[0].DefaultView;
19 ps.AllowPaging = true;
20 int pageIndex;
21 if (Request.QueryString["page"] == null)
22 {
23 pageIndex = 0;
24 }
25 else
26 {
27 pageIndex = Convert.ToInt32(Request.QueryString["page"]);
28 }
29 ps.CurrentPageIndex = pageIndex;
30 this.Label1.Text =Convert.ToString( pageIndex + 1);
31 this.Label2.Text = ps.PageCount.ToString();
32 this.HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?page=0";
33 if (pageIndex <= 0)
34 {
35 this.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?page=0";
36 }
37 else
38 {
39 this.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(pageIndex - 1);
40 }
41 this.HyperLink4.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(Convert.ToInt32(this.Label2.Text) - 1);
42 if ((pageIndex+1) >= Convert.ToInt32(this.Label2.Text))
43
44 {
45 this.HyperLink3.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(Convert.ToInt32(this.Label2.Text) - 1);
46 }
47 else
48 {
49 this.HyperLink3.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(pageIndex + 1);
50 }
51 this.GridView1.DataSource = ps;
52 this.GridView1.DataBind();
53 }

前台:

ContractedBlock.gifExpandedBlockStart.gif前台
1 <div>
2 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
3 <Columns>
4 <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" />
5 <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
6 <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
7 <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
8 </Columns>
9 </asp:GridView>
10 <asp:HyperLink ID="HyperLink1" runat="server">首页</asp:HyperLink>
11 <asp:HyperLink ID="HyperLink2" runat="server">上一页</asp:HyperLink>
12 <asp:HyperLink ID="HyperLink3" runat="server">下一页</asp:HyperLink>
13 <asp:HyperLink ID="HyperLink4" runat="server">尾页</asp:HyperLink>
14 当前页为:<asp:Label ID="Label1" runat="server" Text="1"></asp:Label>
15 总共<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
16 </div>
解释下列代码Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim TJStr As String = Request.QueryString("serch") Dim Dr As DataSet Dim Sql As String Dim SqlObj As New basesql Dim PDSource As New PagedDataSource If Trim(TJStr) <> "" Then Sql = "select uid,uname,jzarea,('face/'+face) as face,regtime,lastlogin,logintimes,(select count(*) from wpinfo where userid=uid) as hps,(select count(*) from requireinfo where userid=uid) as xqs from userinfo where uname like '%" & Trim(TJStr) & "%' order by hps desc" Else Sql = "select uid,uname,jzarea,('face/'+face) as face,regtime,lastlogin,logintimes,(select count(*) from wpinfo where userid=uid) as hps,(select count(*) from requireinfo where userid=uid) as xqs from userinfo order by hps desc" End If Dr = SqlObj.ExecuteDataSet(Sql) PDSource.DataSource = Dr.Tables(0).DefaultView PDSource.AllowPaging = True PDSource.PageSize = 4 Dim CurrPage As Integer If Request.QueryString("page") <> "" Then CurrPage = CInt(Request.QueryString("page")) Else CurrPage = 1 End If PDSource.CurrentPageIndex = CurrPage - 1 Repeater1.DataSource = PDSource Repeater1.DataBind() SumNum.Text = Dr.Tables(0).Rows.Count CPage.Text = PDSource.CurrentPageIndex + 1 SumPage.Text = PDSource.PageCount fpage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=1" epage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & PDSource.PageCount npage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & CurrPage + 1 ppage.NavigateUrl = Request.CurrentExecutionFilePath & "?page=" & CurrPage - 1 If PDSource.IsFirstPage Then fpage.Enabled = False ppage.Enabled = False End If If PDSource.IsLastPage Then epage.Enabled = False npage.Enabled = False End If
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值