利用DataList分页、排序

 

 

页面代码:

 

[c-sharp]  view plain copy
  1. <body>  
  2.     <form id="form1" runat="server">  
  3.     <div>  
  4.         <br />  
  5.         <asp:Button ID="btnName" runat="server" OnClick="btnName_Click" Text="按状态名字排序" />  
  6.                
  7.         <asp:Button ID="btnID" runat="server" OnClick="btnID_Click" Text="按ID排序" Width="133px" /><br />  
  8.         <br />  
  9.         <asp:DataList ID="DataList1" runat="server" HorizontalAlign="Left" RepeatDirection="Horizontal">  
  10.             <ItemTemplate>  
  11.                 <table style="width: 169px; height: 148px">  
  12.                     <tr align="center">  
  13.                         <td colspan="3">  
  14.                             <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("picture") %>' /></td>  
  15.                         <td colspan="1" rowspan="3" style="width: 31px">  
  16.                         </td>  
  17.                     </tr>  
  18.                     <tr>  
  19.                         <td style="width: 67px">  
  20.                                状态id</td>  
  21.                         <td colspan="2">  
  22.                             <asp:Label ID="lblStateId" runat="server" Text='<%# Eval("id") %>'></asp:Label></td>  
  23.                     </tr>  
  24.                     <tr>  
  25.                         <td style="width: 67px">  
  26.                             状态名字</td>  
  27.                         <td colspan="2">  
  28.                             <asp:Label ID="lblStateName" runat="server" Text='<%# Eval("stateName") %>'></asp:Label></td>  
  29.                     </tr>  
  30.                 </table>  
  31.             </ItemTemplate>  
  32.             <SeparatorTemplate>  
  33.                 <hr style ="width :auto; color :Red ;"></hr>  
  34.             </SeparatorTemplate>  
  35.         </asp:DataList><br />  
  36.          <br />  
  37.         <br />  
  38.         <br />  
  39.         <br />  
  40.         <br />  
  41.         <br />  
  42.         <br />  
  43.         <br />  
  44.         <br />  
  45.         <asp:Label ID="lblTotalPages" runat="server" Text="共几页 第几页"></asp:Label>  
  46.         <asp:Button ID="btnPrePage" runat="server" OnClick="btnPrePage_Click" Text="上一页" />  
  47.         <asp:Button ID="btnNextPage" runat="server" OnClick="btnNextPage_Click" Text="下一页" /></div>  
  48.     </form>  
  49. </body>  

 

 

后台代码:

 

[c-sharp]  view plain copy
  1. /// <summary>  
  2.    /// 当前页索引  
  3.    /// </summary>  
  4.    private int pager  
  5.    {  
  6.        get { return (int)ViewState ["page"];}  
  7.        set { ViewState["page"] = value;}  
  8.    }  
  9.    protected void Page_Load(object sender, EventArgs e)  
  10.    {  
  11.        if (!IsPostBack )  
  12.        {  
  13.            ViewState["order"] = "";//首次加载不需要排序,将排序字段设为空  
  14.            ViewState["page"] = 0;//存储页索引  
  15.            DataSource();  
  16.        }  
  17.          
  18.    }  
  19.    private void DataSource()  
  20.    {  
  21.        PagedDataSource pds = new PagedDataSource();//创建页数据源对象  
  22.        //给页数据源赋值  
  23.        pds.DataSource = UserStateMamager.GetAllStatesOrderBy(ViewState["order"].ToString ());  
  24.        pds.AllowPaging = true;//设置分页  
  25.        pds.PageSize = 4;//设置页的信息条数  
  26.        pds.CurrentPageIndex = pager;//设置当前页索引  
  27.   
  28.        //给页面label控件赋值  
  29.        lblTotalPages.Text = "共" + pds.PageCount.ToString() + "页 第" + (pds.CurrentPageIndex + 1).ToString() + "页";  
  30.         
  31.        //判断上一页下一页是否可用  
  32.        setEnable(pds);  
  33.   
  34.        DataList1.DataSource = pds;//给控件绑定数据源  
  35.        DataList1.DataBind();   
  36.    }  
  37.    /// <summary>  
  38.    /// 判断上一页下一页是否可用  
  39.    /// </summary>  
  40.    /// <param name="obj"></param>  
  41.    private void setEnable(PagedDataSource obj)  
  42.    {  
  43.        btnPrePage.Enabled = true;  
  44.        btnNextPage.Enabled = true;  
  45.        if (obj .IsFirstPage )  
  46.        {  
  47.            btnPrePage.Enabled = false;  
  48.        }  
  49.        if (obj .IsLastPage )  
  50.        {  
  51.            btnNextPage.Enabled = false;  
  52.        }  
  53.    }  
  54.    /// <summary>  
  55.    /// 储存按什么排序和显示的页索引  
  56.    /// </summary>  
  57.    /// <param name="sender"></param>  
  58.    /// <param name="e"></param>  
  59.    protected void btnName_Click(object sender, EventArgs e)  
  60.    {  
  61.        ViewState["order"] = "StateName";  
  62.        pager = 0;  
  63.        btnName.Enabled = false;  
  64.        btnID.Enabled = true;  
  65.        DataSource();   
  66.    }  
  67.   
  68.   
  69.    /// <summary>  
  70.    /// 储存按什么排序和显示的页索引  
  71.    /// </summary>  
  72.    /// <param name="sender"></param>  
  73.    /// <param name="e"></param>  
  74.    protected void btnID_Click(object sender, EventArgs e)  
  75.    {  
  76.        ViewState["order"] = "id";  
  77.        pager = 0;  
  78.        btnID.Enabled = false;  
  79.        btnName.Enabled = true;  
  80.        DataSource();  
  81.    }  
  82.    protected void btnPrePage_Click(object sender, EventArgs e)  
  83.    {  
  84.        pager--;  
  85.        DataSource();  
  86.    }  
  87.    protected void btnNextPage_Click(object sender, EventArgs e)  
  88.    {  
  89.        pager++;  
  90.        DataSource();  
  91.    }  

 

//给页数据源赋值
pds.DataSource = UserStateMamager.GetAllStatesOrderBy(ViewState["order"].ToString ());

中的调用的方法(原型):

[c-sharp]  view plain copy
  1. public static List<UserState> GetAllStatesOrderBy(string orderByName)  
  2.        {  
  3.            List<UserState> us = new List<UserState>();  
  4.            string sql = "select * from [userstate]";  
  5.            if (orderByName !="")//是否排序  
  6.            {  
  7.                sql += "order by"+"["+orderByName+"]";  
  8.            }  
  9.            SqlDataReader dr = DBHelper.GetReader(sql);  
  10.            while (dr.Read ())  
  11.            {  
  12.                UserState userState = new UserState();  
  13.                userState.Id = Convert.ToInt32(dr["id"]);  
  14.                userState.StateName = dr["stateName"].ToString();  
  15.                userState.Picture = dr["picture"].ToString();  
  16.                us.Add(userState);  
  17.            }  
  18.            return us;  
  19.        }  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值