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进行搞定,下面是一个对一 ...
随机推荐
- string.match(RegExp) 与 RegExp.exec(string) 深入详解
string.match(RegExp) 与 RegExp.exec(string) 相同点与不同点对比解析: 1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null. 2. 当RegE ...
- 文件打包代码更新 使用json记录打包文件信息
经过之前的几次试验 决定使用json记录打包文件信息 #include "Package.h" #include "json/json.h" #include ...
- chrome url protocol 提示配置文件路径
%localappdata%\Google\Chrome\User Data\Default\Preferences 搜索对应的协议名,例如:{"x-github-client": ...
- centos7 安装mongo
1:创建仓库 vi /etc/yum.repos.d/mongodb-org-3.4.repo 2:把下面的内容复制到文件中 保存退出 [mongodb-org-3.4] name=MongoDB R ...
- ASP.NET Web API之消息[拦截]处理(转)
出处:http://www.cnblogs.com/Leo_wl/p/3238719.html 标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废 ...
- javascript 区分对象类型
在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...
- 第二届CCCC赛后感想 2017-04-15 23:56 88人阅读 评论(0) 收藏
第一次写赛后感想,也不算什么很正规的比赛,不过这次比赛的时间恰好处于思想变化的阶段,留贴纪念. 先谈谈这次比赛,弱校萌新,依靠申请进了总决赛,发现和第一届不一样,缺少了团队奖心中有点缺乏动力,比赛2个 ...
- DataTables使用总结
一.使用方法 1.引入JS文件 <script src="js/plugin/datatables/jquery.dataTables.min.js">< ...
- [Erlang25]Erlang in anger 翻译
Erlang in anger Erlang in anger 是写Learn some Erlang的帅小伙(照片真是帅死啦)写的,一共87页,可以随意下载(英文原版):http://www ...
- ASP.NET2.0 Newtonsoft.Json 操作类分享
JSON 是现在比较流行的数据交互格式,NET3.0+有自带类处理JSON,2.0的话需要借助Newtonsoft.Json来完成,不然自己写的话,很麻烦. 网上搜索下载 Newtonsoft.Jso ...