LINQ 组合查询 和分页查询的使用
前端代码
- <%@ Page Language="C#" AutoEventWireup="true" Debug="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title></title>
- <script src="DatePicker/WdatePicker.js"></script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <br />
- 编号:<asp:TextBox ID="code_text" style="width:50px;" runat="server"></asp:TextBox>
- 汽车名:<asp:TextBox ID="carname_text" runat="server"></asp:TextBox>
- 系列:<asp:TextBox ID="brand_text" runat="server"></asp:TextBox>
- 时间段:<asp:TextBox ID="date_text1" class="date" runat="server"></asp:TextBox>至
- <asp:TextBox ID="date_text2" class="date" runat="server"></asp:TextBox><br />
- 油耗:<asp:DropDownList ID="dr_oil" runat="server">
- <asp:ListItem Text="全部" Value="null"></asp:ListItem>
- <asp:ListItem Text="大于8.0" Value="dayu8.0"></asp:ListItem>
- <asp:ListItem Text="5.0到8.0" Value="5.0zhi8.0"></asp:ListItem>
- <asp:ListItem Text="低于5.0" Value="diyu5.0"></asp:ListItem>
- </asp:DropDownList>
- 排量:<asp:TextBox ID="p_text1" runat="server"></asp:TextBox>至
- <asp:TextBox ID="p_text2" runat="server"></asp:TextBox>
- 价格:<asp:TextBox ID="price_text1" runat="server"></asp:TextBox>至
- <asp:TextBox ID="price_text2" runat="server"></asp:TextBox>
- <asp:Button ID="btn_select" runat="server" Text="查询" />
- <br /><br />
- <table style="width:100%;background-color:navy;">
- <tr style="font-size:25px;color:white;">
- <td>Ids</td>
- <td>编号</td>
- <td>汽车名</td>
- <td>系列</td>
- <td>时间</td>
- <td>油耗</td>
- <td>马力</td>
- <td>排量</td>
- <td>价格</td>
- </tr>
- <asp:Repeater ID="Repeater1" runat="server">
- <ItemTemplate>
- <tr style="background-color:white;">
- <td><%#Eval("ids") %></td>
- <td><%#Eval("code") %></td>
- <td><%#Eval("name") %></td>
- <td><%#Eval("brand") %></td>
- <td><%#Eval("time") %></td>
- <td><%#Eval("oil") %></td>
- <td><%#Eval("powers") %></td>
- <td><%#Eval("exhaust") %></td>
- <td><%#Eval("price") %></td>
- </tr>
- </ItemTemplate>
- </asp:Repeater>
- </table>
- 当前第[<asp:Label ID="lable_now" runat="server" Text=""></asp:Label>]页,共[<asp:Label ID="lable_zong" runat="server" Text=""></asp:Label>]页
-
- <asp:Button ID="btn_begin" runat="server" Text="首页" />
- <asp:Button ID="btn_prev" runat="server" Text="上一页" />
- <asp:Button ID="btn_next" runat="server" Text="下一页" />
- <asp:Button ID="btn_end" runat="server" Text="尾页" />
-
- <asp:DropDownList ID="dr_jump" runat="server"></asp:DropDownList>
- <asp:Button ID="btn_jump" runat="server" Text="跳转" />
- </div>
- </form>
- </body>
- </html>
- <script type="text/javascript">
- var date = document.getElementsByClassName("date");
- for (var i = ; i < date.length; i++)
- {
- date[i].onfocus = function () {
- WdatePicker({ readOnly: true, maxDate: '%y-%M-%d' });
- }
- }
- </script>
后端代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- public partial class _Default : System.Web.UI.Page
- {
- //每一页 显示多少条数据 5条
- int pagecount = ;
- #region 页面加载时 绑定的数据
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- Repeater1.DataSource = SelectToList().Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = "";
- }
- // 绑定事件
- btn_select.Click += btn_select_Click;
- btn_begin.Click += btn_begin_Click;
- btn_end.Click += btn_end_Click;
- btn_next.Click += btn_next_Click;
- btn_prev.Click += btn_prev_Click;
- btn_jump.Click += btn_jump_Click;
- #endregion
- }
- void btn_jump_Click(object sender, EventArgs e)
- {
- int a = Convert.ToInt32(dr_jump.SelectedValue);
- if (a == )
- {
- btn_begin.Visible = false;
- btn_prev.Visible = false;
- btn_end.Visible = true;
- btn_next.Visible = true;
- }
- else if (a.ToString() == lable_zong.Text)
- {
- btn_end.Visible = false;
- btn_next.Visible = false;
- btn_begin.Visible = true;
- btn_prev.Visible = true;
- }
- else
- {
- btn_begin.Visible = true;
- btn_prev.Visible = true;
- btn_end.Visible = true;
- btn_next.Visible = true;
- }
- Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = a.ToString();
- }
- void btn_prev_Click(object sender, EventArgs e)
- {
- int a = Convert.ToInt32(lable_now.Text) - ;
- //假设到 首页 上一页 和 首页隐藏
- if (a < )
- {
- btn_begin.Visible = false;
- btn_prev.Visible = false;
- return;
- }
- btn_begin.Visible = true;
- btn_prev.Visible = true;
- btn_end.Visible = true;
- btn_next.Visible = true;
- Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = a.ToString();
- }
- void btn_next_Click(object sender, EventArgs e)
- {
- int a = Convert.ToInt32(lable_now.Text) + ;
- //假设到尾页时 下一页和尾页隐藏
- if (a > Convert.ToInt32(lable_zong.Text))
- {
- btn_end.Visible = false;
- btn_next.Visible = false;
- return;
- }
- btn_begin.Visible = true;
- btn_prev.Visible = true;
- btn_end.Visible = true;
- btn_next.Visible = true;
- Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = a.ToString();
- }
- void btn_end_Click(object sender, EventArgs e)
- {
- //假设到尾页时 下一页和尾页隐藏 上一页和首页显示
- btn_end.Visible = false;
- btn_next.Visible = false;
- btn_begin.Visible = true;
- btn_prev.Visible = true;
- //数据显示尾页数据
- int a = Convert.ToInt32(lable_zong.Text);
- Repeater1.DataSource = SelectToList().Skip((a - ) * pagecount).Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = a.ToString();
- }
- void btn_begin_Click(object sender, EventArgs e)
- {
- //假设 到首页时 上一页和首页隐藏
- btn_begin.Visible = false;
- btn_prev.Visible = false;
- btn_end.Visible = true;
- btn_next.Visible = true;
- //数据 首页 数据绑定
- Repeater1.DataSource = SelectToList().Take(pagecount);
- Repeater1.DataBind();
- lable_now.Text = "";
- }
- void btn_select_Click(object sender, EventArgs e)
- {
- lable_now.Text = "";
- Repeater1.DataSource = SelectToList().Take(pagecount);
- Repeater1.DataBind();
- }
- //查询数据的方法
- public List<car> SelectToList()
- {
- using (CarDataContext con = new CarDataContext())
- {
- List<car> clist = con.car.ToList();
- //编号 code
- if (code_text.Text.Trim().Length > )
- {
- //包含 code
- clist = clist.Where(r => r.code.Contains(code_text.Text.Trim())).ToList();
- }
- //查汽车名
- if (carname_text.Text.Trim().Length > )
- {
- clist = clist.Where(r => r.name.Contains(carname_text.Text.Trim())).ToList();
- }
- //查时间段
- if (date_text1.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToDateTime(r.time).Date >= Convert.ToDateTime(date_text1.Text).Date).ToList();
- }
- if (date_text2.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToDateTime(r.time).Date <=Convert.ToDateTime(date_text2.Text).Date).ToList();
- }
- //查油耗 oil
- if (dr_oil.SelectedValue == "dayu8.0")
- {
- clist = clist.Where(r => Convert.ToDecimal(r.oil) >= Convert.ToDecimal(8.0)).ToList();
- }
- else if (dr_oil.SelectedValue == "5.0zhi8.0")
- {
- clist = clist.Where(r => Convert.ToDecimal(r.oil) > Convert.ToDecimal(5.0) && Convert.ToDecimal(r.oil) < Convert.ToDecimal(8.0)).ToList();
- }
- else if (dr_oil.SelectedValue == "diyu5.0")
- {
- clist = clist.Where(r => Convert.ToDecimal(r.oil) <= Convert.ToDecimal(5.0)).ToList();
- }
- //查 排量exhaus列
- if (p_text1.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToInt32(r.exhaust) >= Convert.ToInt32(p_text1.Text.Trim())).ToList();
- }
- if (p_text2.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToInt32(r.exhaust) <= Convert.ToInt32(p_text2.Text.Trim())).ToList();
- }
- //查价格price
- if (price_text1.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToDecimal(r.price) >= Convert.ToDecimal(price_text1.Text.Trim())).ToList();
- }
- if (price_text2.Text.Trim().Length > )
- {
- clist = clist.Where(r => Convert.ToDecimal(r.price) <= Convert.ToDecimal(price_text2.Text.Trim())).ToList();
- }
- int a = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(clist.Count) / pagecount));
- lable_zong.Text = a.ToString();
- dr_jump.Items.Clear();
- for (int i = ; i <= a; i++)
- {
- ListItem li = new ListItem(i.ToString(), i.ToString());
- dr_jump.Items.Add(li);
- }
- return clist;
- }
- }
- }
LINQ 组合查询 和分页查询的使用的更多相关文章
- Linq高级查询,分页查询及查询分页结合
一.高级查询与分页查询 1.以...开头 StartsWith Repeater1.DataSource=con.Users.Where(r=>r.Nickname.StartsWith( ...
- SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程
SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end f ...
- MySQL——优化嵌套查询和分页查询
优化嵌套查询 嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.嵌套查询写起来简单,也容易理解.但是,有时候可以被更有效率的连接(JOIN ...
- SQL语句or查询,union all查询,分页查询,分组,AND查询
一.OR查询 1.在AND多个筛选条件和一个or条件时,如果没有括号包裹,or会就近原则包裹之后的所有and条件,也就是同级的多个and条件只能对,or条件的一边起作用 2.如果or条件两边的筛选条件 ...
- DQL---连接查询(内连接、外连接)、子查询、分页查询
一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...
- hibernate总记录数查询和分页查询
//参考代码 //第一种方法: String hql = "select count(*) from User as user"; Integer count = (Integer ...
- TP条件查询和分页查询
一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- mysql-in关键字,分组查询,分页查询
1. in关键字,组查询 # 使用or来查询的化,不方便而且参数一多比较傻 select * from users where id=1 or id=2 or id=4; select * from ...
- Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
Elasticsearch 的查询很灵活,并且有Filter,有分组功能,还有ScriptFilter等等,所以很强大.下面上代码: 一个简单的查询,返回一个List<对象> .. ...
随机推荐
- nodejs写文件
var fs = require('fs'); 2 var txt = "以上程序使用fs.readFileSync从源路径读取文件内容,并使用fs.writeFileSync将文件内容写入 ...
- Windows下git的安装与配置
表示git安装成功.
- Google Analytics添加到网站
把Google Analytics添加到网站的具体方式 https://developers.google.com/analytics/devguides/collection/analyticsjs ...
- 洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)
传送门 公式太长了……我就直接抄一下这位大佬好了……实在懒得打了 首先据说$d(ij)$有个性质$$d(ij)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]$$ 我们所求的答案为$ ...
- java中对List进行分组和排序
排序 对List进行排序,有两种办法 第一个是用java提供的工具类Collections提供的sort方法进行排序 废话不多说,上代码 首先定义一个Student public class Stud ...
- 笔记-JavaWeb学习之旅18
AJAX:ASynchronous JavaScript And XML 异步的JavaScript 和XML 异步和同步:客户端和服务器端相互通信的基础上 同步:客户端操作后必须等待服务器端的响应, ...
- C 语言实例 - 判断正数/负数
C 语言实例 - 判断正数/负数 用户输入一个数字,判断该数字是正数还是负数或是零. 实例 #include <stdio.h> int main() { double number; p ...
- 解决windows下nginx中文文件名乱码
我的根目录文件夹放在d盘work文件夹下,一般这样配置 nginx\conf\nginx.conf location / { root D:/work; index index_bak.html; a ...
- jsp内置对象作用域白话演示
内置对象就是JSP中不需要自己定义和声明的对象,可以在JSP中直接使用.JSP中有9大内置对象,它们有两个常用的方法:setAttribute("key","value& ...
- Java中的"\t"
\t相当于表格制表符tab键,一个格内放8的整数倍的字符,根据显示的字符串长度,剩下的显示空格数.比如:字符串长度为1,那么距离下一个串的空格数应该是8-1=7:如果字符串长度为2,那么距离下一个串的 ...