LinQ的组合+分页
前台代码:
名称:<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的组合+分页的更多相关文章
- Linq 动态组合排序(Lambda)
最近有个项目需要做一个排班的功能,需要对排班的数据按不同的规则进行排序:因为排序规则是动态变化的,所以不太适合放到数据库中(临时表)中处理: 所以考虑使用Linq的排序方式(按不同的条件判断条件组合排 ...
- linq to sql 分页技术
昨天在用LINQ写分页的时候碰到一个很奇怪的问题:翻页的时候,有的数据会莫名其妙地消失,查了半个多小时才发现问题所在,其实是一个很细节的地方. 数据表如下: LINQ分页的实现是: var artic ...
- asp.net LINQ实现数据分页
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- linq 动态组合条件
http://www.albahari.com/nutshell/predicatebuilder.aspx Dynamically Composing Expression Predicates S ...
- 使用 Parallel LINQ 进行数据分页
a) 第一种[耗时11~18s],这种查询方式并不是很优化,但是目前也没有想到更好的方式,除了创建一张中间表,是不是可以使用[全文索引]? SELECT * FROM ( SELECT ROW_ ...
- Spring Data JPA 复杂/多条件组合分页查询
推荐视频: http://www.icoolxue.com/album/show/358 public Map<String, Object> getWeeklyBySearch(fina ...
- repeater+aspnetpager 组合分页
页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="TF_Product. ...
- mybatis动态条件组合分页查询
一.动态条件处理 需要使用mybatis的动态sql 1 <select id="selectItemByCondition" parameterType="com ...
- Entity Framework Linq 动态组合where条件
public static class PredicateExtensions { public static Expression<Func<T, bool>> True&l ...
随机推荐
- Netty系列之Netty百万级推送服务设计要点
1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为 ...
- 【Infobright】infobright数据导入导出测试
创建数据库 create database if not exists `mytestdb` default charset=utf8; use mytestdb; 说明: 如果使用utf8字符集,则 ...
- VS2010中App_Code文件夹的问题
在VS2010中新建一个Web Application,然后新建一个app_Code文件夹, 在app_code文件夹下建一个ClassHelper类. 然后在index页面中使用ClassHelpe ...
- mysql处理高并发,防止库存超卖
先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购.秒杀.特价之类的活动,而这样的活动有一个共同的特点就是访问量激增.上千甚至上万人抢购一个商品.然而,作为活动商品,库存肯定是很有限的,如何控 ...
- java 用插入排序思想,对不规则数组排序。
知道插入排序后,无意中发现,用插入排序思想,对不规则数组排序的排序 发现和许多大神写的不一样,大神写的简洁多了.--------
- spring mvc 4 校验
一.controller中添加: @ResourceGatewayValidator gatewayValidator; @RequestMapping(value = "/gateway/ ...
- 每天一个 Linux 命令(15):tail 命令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新, ...
- Erlang 参考资料
Erlang 官方文档 Distributed Erlang Erlang 教程中文版 %设定模块名 -module(tut17). %导出相关函数 -export([start_ping/1, st ...
- C#的互操作性:缓冲区、结构、指针
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...