PagedDataSource 分页类如何实现带 查询呢??

解决方案 »

  1.   

    已实现,完成后台代码:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace Top3Club.hotel
    {
    /// <summary>
    /// RoomPriceQuery 的摘要说明。
    /// </summary>
    public class RoomPriceQuery: System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Repeater Repeater1;
    protected System.Web.UI.WebControls.TextBox txtHotelName;
    protected System.Web.UI.WebControls.HyperLink lnkPrev;
    protected System.Web.UI.WebControls.HyperLink lnkNext;
    protected System.Web.UI.WebControls.HyperLink lnkFirst;
    protected System.Web.UI.WebControls.HyperLink lnkLast;
    protected System.Web.UI.WebControls.Label lblPageCount;
    protected System.Web.UI.WebControls.Label lblCurrentPage;
    protected System.Web.UI.WebControls.Button Button1;
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    //GetRoomPriceRecords(txtHotelName.Text.ToString().Trim());
    if(!Page.IsPostBack)
    {
    if(Session["hotelname"] != null)
    {
    GetRoomPriceRecords(Session["hotelname"].ToString());
    }
    }
    }
    #region 根据酒店名称等条件查询出满足条件的记录
    public void GetRoomPriceRecords(string hotelName)
    { string sql = "";
    sql = "SELECT hotelid,cname,address,star FROM hotelinfo  WHERE 1=1 " ;
    if(hotelName.ToString().Trim() != "")
    {
    sql += " and cname like '%" +hotelName+ "%'";
    }
    sql += " order by hotelid ";
    DataSet ds = (DataSet)USDAL.USExecutor.ExecuteSQL(sql,typeof(DataSet));

    PagedDataSource obj=new PagedDataSource();
    obj.DataSource=ds.Tables[0].DefaultView;

    //以下为调用系统自带的DataPageSource分页类,并把PagedDataSource 对象赋给Repeater控件
    obj.AllowPaging=true;
    obj.PageSize=20;

    int CurrentPage;

    if (Request.QueryString["Page"] == null)
    {
    CurrentPage=1;
    }
    else
    {
    CurrentPage=Convert.ToInt32(Request.QueryString["Page"]);
    }
    obj.CurrentPageIndex = CurrentPage-1; 
    lblCurrentPage.Text  = CurrentPage.ToString();
    lblPageCount.Text = obj.PageCount.ToString();
    //lblCurrentPage.Text = "当前第" + CurrentPage.ToString()+"页/共"+obj.PageCount.ToString()+"页";
    if (!obj.IsFirstPage)
    {
    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage-1);

    lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
    }
    else
    {
    lnkFirst.NavigateUrl = "";
    } if (!obj.IsLastPage)
    {
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurrentPage+1);
    lnkLast.NavigateUrl  = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(obj.PageCount); }
    else
    {
    lnkLast.NavigateUrl  = "";
    } //以上为调用系统自带的DataPageSource分页类,并把PagedDataSource 对象赋给Repeater控件
    Repeater1.DataSource=obj;
    Repeater1.DataBind();
    }
    #endregion
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    { Session["hotelname"] =  txtHotelName.Text.ToString().Trim();
    Response.Redirect("RoomPriceQuery.aspx");
    }
    }
    }