• 我写的PageDataSurce分页的


    PageDataSurce分页因为Http无状态的特性,所以无法保存pagedatasource状态值,所以每次请求都必须重新来指定CurrentPage的值...

    一般是用QueryString来传递当前页的值。。。

    我这个没用这种方法,我的方法是把PageDataSource保存在Cache中,所以就一直保存了它的装态。不需要再用QueryString传递了....
     1<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
     2
     3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4
     5<html xmlns="http://www.w3.org/1999/xhtml">
     6<head runat="server">
     7    <title>无标题页</title>
     8</head>
     9<body>
    10    <form id="form1" runat="server">
    11    <div>
    12      <table>
    13        <asp:Repeater ID="Repeater1" runat="server">
    14            <ItemTemplate>
    15
    16                    <tr>
    17                        <td><%#DataBinder.Eval(Container.DataItem,"Name")%></td>
    18                        <td><%#DataBinder.Eval(Container.DataItem,"Tel")%></td>
    19                        <td><%#DataBinder.Eval(Container.DataItem,"Description")%></td>
    20                    </tr>
    21            </ItemTemplate>
    22        </asp:Repeater>
    23       </table>
    24        <asp:Button ID="Button1" runat="server" CommandArgument="1" CommandName="Btn" OnClick="Btn_OnClick" Text="首页" />
    25        <asp:Button ID="Button2" runat="server" CommandArgument="2" CommandName="Btn" OnClick="Btn_OnClick" Text="上一页" />
    26        <asp:Button ID="Button3" runat="server" CommandArgument="3" CommandName="Btn" OnClick="Btn_OnClick" Text="下一页" />
    27        <asp:Button ID="Button4" runat="server" CommandArgument="4" CommandName="Btn" OnClick="Btn_OnClick" Text="末页" />
    28    </div>
    29    </form>
    30</body>
    31</html>
    32


    后台代码:
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;

    public partial class _Default : System.Web.UI.Page 
    {
        
    private PagedDataSource pd;
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            
    if (!IsPostBack)
            
    {
                DataTable dt 
    = new DataTable();
                dt.Columns.Add(
    "ID", Type.GetType("System.String"));
                dt.Columns.Add(
    "Name", Type.GetType("System.String"));
                dt.Columns.Add(
    "Tel", Type.GetType("System.String"));
                dt.Columns.Add(
    "Description", Type.GetType("System.String"));
                dt.Rows.Add(
    "1""ddd""123456""个人人人人");
                dt.Rows.Add(
    "2""ddd""56565656""提供方多个");
                dt.Rows.Add(
    "3""qqq""565656""大师父是非得失");
                dt.Rows.Add(
    "4""www""788888""上的发生地方上的");
                dt.Rows.Add(
    "5""qas""33333""双方上的发生");
                dt.Rows.Add(
    "6""fff""222222""但是发的十分上的");
                dt.Rows.Add(
    "7""ccc""33333""双方都是非");
                InitalDataSourece(dt);
            }

        }


        
    private void InitalDataSourece(DataTable dt)
        
    {
            pd 
    = new PagedDataSource();
            pd.DataSource 
    = dt.DefaultView ;
            pd.PageSize 
    = 2;
            pd.AllowPaging 
    = true;
            Cache[
    "Pd"= pd;
            DataBind();
        }


        
    private void DataBind()
        
    {
            Repeater1.DataSource 
    = pd;
            Repeater1.DataBind();
        }


        
    protected void Btn_OnClick(object sender, EventArgs e)
        
    {
            Button btn 
    = (Button)sender;
            pd 
    = (PagedDataSource)Cache["Pd"];
            
    if (btn.CommandArgument == "1")
            
    {
                pd.CurrentPageIndex 
    = 0;
            }

            
    else if (btn.CommandArgument == "2")
            
    {
                
    if (pd.IsFirstPage)
                
    {
                    pd.CurrentPageIndex 
    = 0;
                }

                
    else
                
    {
                    pd.CurrentPageIndex 
    -= 1;
                }
    ;
            }

            
    else if (btn.CommandArgument == "3")
            
    {
                
    if (pd.IsLastPage)
                
    {
                    pd.CurrentPageIndex 
    = pd.PageCount - 1;
                }

                
    else
                
    {
                    pd.CurrentPageIndex 
    += 1;
                }

            }

            
    else
            
    {
                pd.CurrentPageIndex 
    = pd.PageCount - 1;
            }

            DataBind();
        }


    }

  • 相关阅读:
    Yii 动作过滤的方法
    artdialog
    第一天:安装nodejs
    yii模块下面的组件
    总是容易忘记 jquery ajax POST
    【来自简书】浏览器~加载,解析,渲染
    【收藏】九个PHP很有用的功能
    从理论到实践,全方位认识DNS(实践篇)
    从理论到实践,全方位认识DNS(理论篇)
    DNS解析过程原理
  • 原文地址:https://www.cnblogs.com/windstore/p/1146544.html
Copyright © 2020-2023  润新知