yp秋水伊人

导航

分页查询、组合查询

     </asp:Repeater>
        <br />
        当前第[<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>]页,
        共[<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>]页 &nbsp;
        <asp:LinkButton ID="btn_first" runat="server">首页</asp:LinkButton>&nbsp;
        <asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>&nbsp;
        <asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>&nbsp;
        <asp:LinkButton ID="btn_end" runat="server">末页</asp:LinkButton>&nbsp;
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"></asp:DropDownList>
        <asp:Button ID="Button1" runat="server" Text="跳转" />
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class fenye : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Repeater1.DataSource = new ChainDA().Select(Pagcount, 1);//默认是5条数据,第一页
            Repeater1.DataBind();
            Label1.Text = "1";//打开就显示当前第1页

            for (int i = 1; i <= Max(); i++)
            { 
            //每一条数据都是ListItem
                ListItem li = new ListItem(i.ToString(),i.ToString());
                //复合控件
                DropDownList1.Items.Add(li);
            }


        }
        Label2.Text = Max().ToString();//显示总共多少页

        btn_first.Click += btn_first_Click;//首页按钮
        btn_end.Click += btn_end_Click;//末页按钮
        btn_prev.Click += btn_prev_Click;//上一页按钮
        btn_next.Click += btn_next_Click;//下一页按钮
        Button1.Click += Button1_Click;//点击跳转按钮
        DropDownList1.SelectedIndexChanged += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {//跳转按钮
        int a = Convert.ToInt32(DropDownList1.SelectedItem.Text);
        Label1.Text = a.ToString();
        Repeater1.DataSource = new ChainDA().Select(Pagcount, a);
        Repeater1.DataBind();//重新赋值
    }
    int Pagcount = 10;//每页显示多少条
   
    //下一页按钮
    void btn_next_Click(object sender, EventArgs e)
    {
        int num = Convert.ToInt32(Label1.Text);//
        num++;//下一页
        if (num >= Max())//超过最大页就不执行了,下面语句也不执行
        {
            return;
        }
        Label1.Text = num.ToString();
        Repeater1.DataSource = new ChainDA().Select(Pagcount, num);//显示Pagcount条数据,num是下一页
        Repeater1.DataBind();//重新赋值
    }
    //上一页按钮
    void btn_prev_Click(object sender, EventArgs e)
    {
        int num = Convert.ToInt32(Label1.Text);//
        num--;//上一页
        if (num < 1)//超过最小页就不执行了,下面语句也不执行
        {
            return;
        }
        Label1.Text = num.ToString();
        Repeater1.DataSource = new ChainDA().Select(Pagcount, num);//显示Pagcount条数据,num是上一页
        Repeater1.DataBind();//重新赋值
    }
    //末页按钮
    void btn_end_Click(object sender, EventArgs e)
    {
        Repeater1.DataSource = new ChainDA().Select(Pagcount, Max());//显示Pagcount条数据,Max()是最大页
        Repeater1.DataBind();//重新赋值
        Label1.Text = Max().ToString();
    }
    //首页按钮
    void btn_first_Click(object sender, EventArgs e)
    {

        Repeater1.DataSource = new ChainDA().Select(Pagcount, 1);//显示Pagcount条数据,1是首页
        Repeater1.DataBind();//重新赋值
        Label1.Text ="1";
    }
    private int Max()//最大页
    {
        int count = new ChainDA().Select().Count;
        double aa= count/(Pagcount*1.0);//所有的数据除以每页显示的条数就是一共多少页
        return Convert.ToInt32(Math.Ceiling(aa));//返回最大或等于的整数
    }
}

组合查询:

 public List<Car> Select(string Tsql,Hashtable hs)//直接传sql语句
    {
        List<Car> list = new List<Car>();

        cmd.CommandText = Tsql;
        cmd.Parameters.Clear();//哈希表集合

        foreach (string k in hs.Keys)
        {
            cmd.Parameters.Add(k, hs[k]);
        }

        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();

        if (dr.HasRows)
        {
            while (dr.Read())
            {
                Car c = new Car()
                {
                    ids=dr[0].ToString(),
                    code=dr[1].ToString(),
                    name=dr[2].ToString(),
                    brand=dr[3].ToString(),
                    time= Convert.ToDateTime(dr[4]),
                    oil = Convert.ToDecimal(dr[5]),
                    powers=Convert.ToInt32(dr[6]),
                    exhaust=Convert.ToInt32(dr[7]),
                    price=Convert.ToDecimal(dr[8]),
                    pic = dr[9].ToString()
                };
                list.Add(c);
            }
        }
        conn.Close();
        return list;
    }
View Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Repeater1.DataSource = new CarData().Select("select *from Car", new Hashtable());
            Repeater1.DataBind();
        }

        Button2.Click += Button2_Click;
    }

    void Button2_Click(object sender, EventArgs e)
    {
        Hashtable hs = new Hashtable();//哈希表集合,自定义

        int count = 0;//中间变量

        string Tsql = "select *from car";//默认查全部

        if (TextBox1.Text != "")
        {
            Tsql += " where name like @a";//防攻击
            hs.Add("@a", "%" + TextBox1.Text + "%");
            count++;
        }

        if (TextBox2.Text != "")
        {
            if (count > 0)
            {
                Tsql += " and oil=@b";
            }
            else
            {
                Tsql += " where oil=@b";
            }
            count++;
            hs.Add("@b", TextBox2.Text);
        }

        if (TextBox3.Text != "")
        {
            if (count > 0)
            {
                Tsql += " and powers = @c";
            }
            else
            {
                Tsql += " where powers = @c";
            }
            hs.Add("@c", TextBox3.Text);
        }

        Label3.Text = Tsql;

        Repeater1.DataSource = new CarData().Select(Tsql, hs);
        Repeater1.DataBind();
       // select *from car where name like "%"+ + "%" "and oil=" + + "and powers=" + +;
    }
}

 

posted on 2016-09-28 22:33  yp秋水伊人  阅读(167)  评论(0编辑  收藏  举报