C#-WebForm-★★★LinQ-数据的条件组合查询并进行分页展示(未加各种限定)★★★
前台代码:
<%@ Page Language="C#" AutoEventWireup="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>
<style>
* {
padding: 0px;
margin: 0px;
} #div0 {
width: 1000px;
position: relative;
margin: 0px auto;
} #tb1 {
width: %;
text-align: center;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="div0">
Name:<asp:TextBox ID="txt_name" runat="server"></asp:TextBox>
Brand:<asp:TextBox ID="txt_brand" runat="server"></asp:TextBox>
Price:<asp:DropDownList ID="ddl_price" runat="server">
<asp:ListItem Value="=">等于</asp:ListItem>
<asp:ListItem Value=">=">大于等于</asp:ListItem>
<asp:ListItem Value="<=">小于等于</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txt_price" runat="server"></asp:TextBox>
<asp:Button ID="btn_selectsome" runat="server" Text="查询" />
<asp:Button ID="btn_selectall" runat="server" Text="查询全部" />
<br />
<br />
<table id="tb1" border="" cellpadding="" cellspacing="">
<tr style="background-color: navy; color: white;">
<td>Code</td>
<td>Namge</td>
<td>Brand</td>
<td>Time</td>
<td>Oil</td>
<td>Powers</td>
<td>Exhaust</td>
<td>Price</td>
<td>Pic</td>
<td>操作</td>
</tr>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<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>
<td><%#Eval("Pic") %></td>
<td>
<a href="Update.aspx?name=<%#Eval("name") %>">修改</a>
<a href="Delete.aspx?name=<%#Eval("name") %>">删除</a>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br />
共【<asp:Label ID="lb_AllInf" runat="server" Text="加载中..."></asp:Label>】条数据
当前第【<asp:Label ID="lb_NowPage" runat="server" Text="加载中..."></asp:Label>】页
共【<asp:Label ID="lb_MaxPageNum" runat="server" Text="加载中..."></asp:Label>】页
<asp:Button ID="btn_prev" runat="server" Text="上一页" />
<asp:Button ID="btn_next" runat="server" Text="下一页" /> </div>
</form>
</body>
</html>
二、后台代码
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
{
//全局变量
//▲▲▲②每页显示的数据条数▲▲▲
int vPagePerCount = ; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//首次加载全部数据
Select();
lb_NowPage.Text = "";
} //<查询全部>按钮
btn_selectall.Click += btn_selectall_Click;
//<查询>按钮
btn_selectsome.Click += btn_selectsome_Click;
//<下一页>
btn_next.Click += btn_next_Click;
//<上一页>
btn_prev.Click += btn_prev_Click; }
//<查询全部>按钮
void btn_selectall_Click(object sender, EventArgs e)
{
//先清空文本框中的内容
txt_name.Text = "";
txt_brand.Text = "";
ddl_price.SelectedValue = "=";
txt_price.Text = "";
//再查询绑定数据,并跳至第一页
Select();
}
//<查询>按钮
void btn_selectsome_Click(object sender, EventArgs e)
{
//查询绑定数据,并跳至第一页
Select();
}
//<下一页>
void btn_next_Click(object sender, EventArgs e)
{
//获取当前页码和最大页码
int NowPageNum = Convert.ToInt32(lb_NowPage.Text);
int MaxPageNum = Convert.ToInt32(lb_MaxPageNum.Text);
//比较下一页页码和最大页码,只有当下一页页码不大于最大页码时才跳至下一页
if (NowPageNum + <= MaxPageNum)
{
Select(NowPageNum + );
}
}
//<上一页>
void btn_prev_Click(object sender, EventArgs e)
{
//获取当前页码
int NowPageNum = Convert.ToInt32(lb_NowPage.Text);
//比较上一页页码和第一页,只有当上一页页码不小于第一页时才跳至上一页
if (NowPageNum - >= )
{
Select(NowPageNum - );
}
} //====================封装方法=========================
//查询数据并绑定方法 参数:要跳至的页数 返回:无返回值
public void Select(int PageNum)
{
//获取查询条件
string name = txt_name.Text.Trim();
string brand = txt_brand.Text.Trim();
string price = txt_price.Text.Trim();
//查询并绑定数据
using (mydbDataContext con = new mydbDataContext())
{
//查询
IQueryable<Car> clist = con.Car.AsQueryable();
if (name.Length > )
clist = clist.Where(r => r.Name.Contains(name));
if (brand.Length > )
clist = clist.Where(r => r.Brand.Contains(brand));
if (price.Length > )
{
string f = ddl_price.SelectedValue;
if (f == "=")
clist = clist.Where(r => r.Price == Convert.ToDecimal(price));
if (f == ">=")
clist = clist.Where(r => r.Price >= Convert.ToDecimal(price));
if (f == "<=")
clist = clist.Where(r => r.Price <= Convert.ToDecimal(price)); }
//绑定数据
Repeater1.DataSource = clist.Skip((PageNum - ) * vPagePerCount).Take(vPagePerCount);
Repeater1.DataBind();
////修改Label显示
//总数据的条数
decimal AllListCount = clist.Count();
lb_AllInf.Text = AllListCount.ToString();
//最大页数
int MaxPageNum = Convert.ToInt32(Math.Ceiling(AllListCount / vPagePerCount));
lb_MaxPageNum.Text = MaxPageNum.ToString();
//当前页码
lb_NowPage.Text = PageNum.ToString(); }
} }
C#-WebForm-★★★LinQ-数据的条件组合查询并进行分页展示(未加各种限定)★★★的更多相关文章
- 《MySQL数据操作与查询》- 维护学生信息、老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息
综合项目需求 一.系统整体功能 系统需支持以下功能: 维护学生信息.老师信息和成绩信息 支持按多种条件组合查询学生信息和成绩信息 学生 Student(id,班级id,学号,姓名,性别,电话,地址,出 ...
- solr的多条件组合查询和solr的范围查询【转】
solr的多条件组合查询和solr的范围查询 版权声明:本文为博主原创文章,供大家参考,但不要抄袭哦! 存在问题:为了减轻数据库的访问压力,往往我们将必要的数据存储到solr中,并给部分字段建立索引, ...
- jsp 多条件组合查询
web层: public String query(HttpServletRequest request, HttpServletResponse response) throws ServletEx ...
- LINQ 小项目【组合查询、分页】
使用 linq 在网页上对用户信息增删改,组合查询,分页显示 using System; using System.Collections.Generic; using System.Linq; us ...
- sql语句-如何在SQL以一个表中的数据为条件据查询另一个表中的数据
select *from 表2where 姓名 in (select 姓名from 表1where 条件) 这个就是用一个表的查询结果当作条件去查询另一个表的数据
- SolrJ查询条件组合查询实现——(十六)
带查询条件的实现原理: 查询按钮被包在一个大表单,表单还有三个隐藏域,一个商品筛选,一个 价格,一个排序,每次点击查询时候清空三个隐藏域,就带着一个大条件去查询;点击下面的筛选条件时,给隐藏域的筛选条 ...
- PredicateBuilder类(linq多条件组合查询)
PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AN ...
- MongoDB 多条件组合查询
组合条件查询json格式语法 { "$and": [ { "Date": { $gt: ISODate("2015-06-05T00:45:00.00 ...
- spring boot jpa 多条件组合查询带分页的案例
spring data jpa 是一个封装了hebernate的dao框架,用于单表操作特别的方便,当然也支持多表,只不过要写sql.对于单表操作,jpake可以通过各种api进行搞定,下面是一个对一 ...
随机推荐
- Linq操作DataTable
IEnumerable<DataRow> q = from dr in dt.AsEnumerable() where dr.Field& ...
- select_shape_proto算子的几种特征模式含义解析
select_shape_proto是一个非常有用的region筛选算子,但是由于难以理解,因此一般人使用得不是太多. 算子签名如下: select_shape_proto(Regions, Patt ...
- py学习之FTP
1.FTP之参数解析与命令分发 a) 层级目录如下 b) 配置文件如下 #!/usr/bin/env python # -*- coding:utf8 -*- import socket sk=soc ...
- smarty foreach
<{foreach from=$data item=val }> <tr align="center"> <td><{$val.item_ ...
- 图灵社区 书单推荐:成为Java顶尖程序员 ,看这11本书就够了
java书单推荐 转自 http://www.ituring.com.cn/article/211418 “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两 ...
- XP+Android手机DIY家庭视频点播系统-历时3周全力打造吊丝的幸福生活
需求场景(纯熟虚构): 1. 哥电脑里有200G电影copy到手机上看没那么大空间,copy一部看一部删除一部,很是不方便也费时间. 2. 小林同学需求比较旺盛但是媳妇总有不方便的时候,家里有 ...
- ADO.net开放式并发
https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/optimistic-concurrency 在多用户环境中,有两种用于更新 ...
- Redis持久化(八)
Redis特性: (1)多数据库 (2)Redis事物 (3)一个Redis最多可提供16个数据库,下标[0-15] 选择数据库: select 1 (选择1号数据库,默认连接的是0号数据库)移动数据 ...
- java中的四种代码块
一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args ...
- Ultimate guide to learning AngularJS in one day
What is AngularJS? Angular is a client-side MVC/MVVM framework built in JavaScript, essential for mo ...