前台代码:

        名称:<asp:TextBox ID="Textname" runat="server"></asp:TextBox>
油耗:<asp:TextBox ID="Textoil" runat="server"></asp:TextBox>
马力:<asp:TextBox ID="Textpowers" runat="server"></asp:TextBox>
<asp:Button ID="btncha" runat="server" Text="查询" /><br /><br />
当前第[<asp:Label ID="lb_now" runat="server" Text=""></asp:Label>]页,共[<asp:Label ID="lb_all" runat="server" Text=""></asp:Label>]页
<asp:LinkButton ID="btnfirst" runat="server">首页</asp:LinkButton>
<asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton> <asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>
<asp:LinkButton ID="btnlast" runat="server">末页</asp:LinkButton>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"></asp:DropDownList>

CarDA:数据访问类,

mydbDataContext con = new mydbDataContext();
         public List<Car> Select()//查询表所有数据
            {
             return con.Car.ToList();
            }

 public List<Car> Selectname(string n)//查名称的方法
{
return con.Car.Where(r => r.Name.Contains(n)).ToList();
}
public List<Car> Selectoil(decimal o)//查油耗的方法
{
return con.Car.Where(r => r.Oil == o).ToList();
}
public List<Car> Selectpow(int p)//查马力的方法
{
return con.Car.Where(r => r.Powers == p).ToList();
} public List<Car> Fenye(List<Car> list, int s, int t)//查分页的方法s是几条数据,t是几页
{
List<Car> li = con.Car.ToList();//查到所有数据
return li.Intersect(list).Skip(s * t).Take(t).ToList();
}

后台代码:

  int pagenum = ;//每页显示三页
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = new CarDA().Select().Take(pagenum);
Repeater1.DataBind();
lb_now.Text = "";//定义打开显示第一页
lb_all.Text = Math.Ceiling(Convert.ToDouble(new CarDA().Select().Count) / pagenum).ToString();//上限 最大页数 总条数÷一页显示的条数= 总共的页数 for (int i = ; i <= Convert.ToInt32(lb_all.Text); i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList1.Items.Add(li);//跳转
}
} btncha.Click += btncha_Click;//查询 btn_prev.Click += btn_prev_Click;//上一页
btn_next.Click += btn_next_Click;//下一页
btnfirst.Click += btnfirst_Click;//首页
btnlast.Click += btnlast_Click;//末页
DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;//跳转
} void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{//跳转 int n = Convert.ToInt32(DropDownList1.SelectedItem.Text);//获取索引最小的选定向 lb_now.Text = n.ToString();//当前页数
CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
} lb_all.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
Repeater1.DataSource = ca.Fenye(list, (Convert.ToInt32(lb_now.Text) - ), pagenum);
Repeater1.DataBind();
} void btnlast_Click(object sender, EventArgs e)
{//末页
CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
}
lb_now.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
lb_all.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
Repeater1.DataSource = ca.Fenye(list, (Convert.ToInt32(lb_now.Text) - ), pagenum);
Repeater1.DataBind();
} void btnfirst_Click(object sender, EventArgs e)
{//首页
lb_now.Text = "";
CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
} lb_all.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
Repeater1.DataSource = ca.Fenye(list, (Convert.ToInt32(lb_now.Text) - ), pagenum);
Repeater1.DataBind(); } void btn_next_Click(object sender, EventArgs e)
{//下一页 int a =Convert.ToInt32( lb_now.Text)+;每点一下加1 CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
}
lb_now.Text = a.ToString();//让现在的页数显示+1之后的数据
lb_all.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
Repeater1.DataSource = ca.Fenye(list, (Convert.ToInt32(lb_now.Text) - ), pagenum);
Repeater1.DataBind(); } void btn_prev_Click(object sender, EventArgs e)
{//上一页
if (Convert.ToInt32(lb_now.Text) > )判断是否可以点上一页
{
int nownum = Convert.ToInt32(lb_now.Text) - ;
CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
} Repeater1.DataSource = ca.Fenye(list, (nownum - ), pagenum);
Repeater1.DataBind();
lb_now.Text = nownum.ToString();
}
} void btncha_Click(object sender, EventArgs e)
{//查询
lb_now.Text = "";
int nownum = Convert.ToInt32(lb_now.Text);
CarDA ca = new CarDA();
List<Car> list = ca.Select(); if (Textname.Text != "")
{
List<Car> list1 = ca.Selectname(Textname.Text);
list = list.Intersect(list1).ToList();
}
if (Textoil.Text != "")
{
List<Car> list1 = ca.Selectoil(Convert.ToDecimal(Textoil.Text));
list = list.Intersect(list1).ToList();
}
if (Textpowers.Text != "")
{
List<Car> list1 = ca.Selectpow(Convert.ToInt32(Textpowers.Text));
list = list.Intersect(list1).ToList();
}
lb_all.Text = Math.Ceiling(Convert.ToDouble(list.Count) / pagenum).ToString();
DropDownList1.Items.Clear();
for (int i = ; i <= Convert.ToInt32(lb_all.Text); i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList1.Items.Add(li);
}
Repeater1.DataSource = ca.Fenye(list, (nownum - ), pagenum);
Repeater1.DataBind();
}

LinQ的组合+分页的更多相关文章

  1. Linq 动态组合排序(Lambda)

    最近有个项目需要做一个排班的功能,需要对排班的数据按不同的规则进行排序:因为排序规则是动态变化的,所以不太适合放到数据库中(临时表)中处理: 所以考虑使用Linq的排序方式(按不同的条件判断条件组合排 ...

  2. linq to sql 分页技术

    昨天在用LINQ写分页的时候碰到一个很奇怪的问题:翻页的时候,有的数据会莫名其妙地消失,查了半个多小时才发现问题所在,其实是一个很细节的地方. 数据表如下: LINQ分页的实现是: var artic ...

  3. asp.net LINQ实现数据分页

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  4. linq 动态组合条件

    http://www.albahari.com/nutshell/predicatebuilder.aspx Dynamically Composing Expression Predicates S ...

  5. 使用 Parallel LINQ 进行数据分页

    a)   第一种[耗时11~18s],这种查询方式并不是很优化,但是目前也没有想到更好的方式,除了创建一张中间表,是不是可以使用[全文索引]? SELECT * FROM ( SELECT  ROW_ ...

  6. Spring Data JPA 复杂/多条件组合分页查询

    推荐视频: http://www.icoolxue.com/album/show/358 public Map<String, Object> getWeeklyBySearch(fina ...

  7. repeater+aspnetpager 组合分页

    页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="TF_Product. ...

  8. mybatis动态条件组合分页查询

    一.动态条件处理 需要使用mybatis的动态sql 1 <select id="selectItemByCondition" parameterType="com ...

  9. Entity Framework Linq 动态组合where条件

    public static class PredicateExtensions { public static Expression<Func<T, bool>> True&l ...

随机推荐

  1. makefile函数

    http://www.cnblogs.com/tianyajuanke/archive/2013/02/16/2610276.html 通用步骤: 编译时,可以不知钉头文件,如果指定头文件,其作用是当 ...

  2. 【学】AngularJS日记(3)- $apply(), run()方法

    $scope.$apply()方法可以强制$apply()里运行的函数所改变的model里的数据直接反应到view里,因为在angular的环境中,有时会用到原生js或者jquery的时候,这些行为有 ...

  3. vue.js 1中父组件跳到子组件中并传参让子组件显示不同的内容

    父组件中的点击跳转: <ul class="insurance-entry clearfloat"> <li v-link="{name:'produc ...

  4. 关于margin的问题

    昨晚是第一天,现在来说说margin的这个存在的问题吧, 嗯,就是当你碰到 <div class="max-box"> <div class="box1 ...

  5. CentOS下Apache开启Rewrite功能

    1.centos的配置文件放在: /etc/httpd/conf/httpd.conf 打开文件找到: LoadModule rewrite_module modules/mod_rewrite.so ...

  6. Centos6.4 aria2 webui-aria2

    wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -ivh ...

  7. C#接口显示实现在实际开发中的作用

    摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是, ...

  8. (Array)121. Best Time to Buy and Sell Stock

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  9. 对想进入Unity开发新人的一些建议

    提前声明:本文只是写给那些非职业游戏开发人士,只面向那些在校本科生,或已就业但无unity背景的同学们,当然是面对程序员方向的.本人刚工作也没多久,资历尚浅,之前在网上有一位同学让我谈谈一些想法,所以 ...

  10. Mono自定义图片按钮

    首先,我们编写一个MyImageButton类,继承自LinearLayout public class MyPhoneImageButton:LinearLayout { private Image ...