就是单击一个按钮,让Repeater里的值升序降序排列

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;using MyBookShopBLL;
    using MyBookShopModels;public partial class BookList : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack) {
                ViewState["page"] = 0;
                ViewState["order"] = "";
                ViewState["updown"] = "";       //升序还是降序
                try
                {
                    ViewState["typeId"] = Convert.ToInt32(Request.QueryString.Get("typeId"));
                }
                catch 
                {
                    ViewState["typeId"] = -1;
                }
                DataBind();
            }
        }    /// <summary>
        /// 数据的邦定
        /// </summary>
        private void DataBind() {
            PagedDataSource pdsBooks = new PagedDataSource();
            pdsBooks.DataSource = BookManager.GetOrderedSmallBooksByCategoryId(Convert.ToInt32(ViewState["typeId"].ToString()), ViewState["order"].ToString(), ViewState["updown"].ToString());
            pdsBooks.AllowPaging = true;
            pdsBooks.PageSize = 4;
            pdsBooks.CurrentPageIndex = Pager;
            lblCurrentPage.Text = "第 " + (pdsBooks.CurrentPageIndex + 1).ToString() + " 页 共 " + pdsBooks.PageCount.ToString() + " 页 总共:"+pdsBooks.DataSourceCount.ToString()+" 页";
            SetEnable(pdsBooks);
            dlBooks.DataSource = pdsBooks;
            dlBooks.DataBind();
        }    /// <summary>
        /// 按钮的可用性
        /// </summary>
        /// <param name="pdsBooks"></param>
        private void SetEnable(PagedDataSource pdsBooks)
        {
            btnPrev.Enabled = true;
            btnNext.Enabled = true;
            if(pdsBooks.IsFirstPage) {
                btnPrev.Enabled = false;
            }
            if(pdsBooks.IsLastPage) {
                btnNext.Enabled = false;
            }
        }    //当前页
        private int Pager
        {
            get {
                return (int)ViewState["page"];
            }
            set {
                ViewState["page"] = value;
            }
        }    /// <summary>
        /// 上一页
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnPrev_Click(object sender, EventArgs e)
        {
            Pager--;
            DataBind();
        }    /// <summary>
        /// 下一页
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnNext_Click(object sender, EventArgs e)
        {
            Pager++;
            DataBind();
        }    /// <summary>
        /// 根据出版日期排序
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnDate_Click(object sender, EventArgs e) {
            ViewState["order"] = "PublishDate";
            Pager = 0;
            btnDate.Enabled = false;
            btnPrice.Enabled = true;
            DataBind();
        }    /// <summary>
        /// 根据价格排序
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnPrice_Click(object sender, EventArgs e) {
            ViewState["order"] = "UnitPrice";
            Pager = 0;
            btnPrice.Enabled = false;
            btnDate.Enabled = true;
            DataBind();
        }    /// <summary>
        /// 用户定义页数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGo_Click(object sender, EventArgs e)
        {
            try
            {
                Pager = int.Parse(this.txtGo.Text.ToString());
            }
            catch (Exception ex)
            {
                return;
            }
            
            Pager -= 1;
            DataBind();
        }    /// <summary>
        /// 升序还是降序 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ddlUpDown_SelectedIndexChanged(object sender, EventArgs e)
        {
            string flag = this.ddlUpDown.SelectedValue.ToString();
            if (flag == "2")
            {
                ViewState["updown"] = "desc";
            }
            else {
                ViewState["updown"] = "";
            }
            DataBind();
        }
    }
      

  2.   

    本来想给你个测试过的代码来,我的数据没帮定上,呵呵,给你关键代码自己去试吧。if (!Page.IsPostBack)
            {
                ViewState["SortOrder"] = "OrdersID";
                ViewState["OrderDire"] = "DESC";
                BindData();
            }
     private void BindData()
        {   ///获取数据
            DataSet ds = myOrders.Get_SalesColorOrders_List(SalesID);
            ///显示数据
            ///
            DataView dv = ds.Tables[0].DefaultView;
            string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
            dv.Sort = sort;
            gvOrders.DataSource = dv;
            gvOrders.DataBind();
        }
    //单击事件
    protected void Click(object sender, EventArgs e)
    {
        ViewState["OrderDire"] = "ASE";
        BindData();
    }
    怎么扩展自己想办法吧