1.首先使用Linq连接数据库,并扩展属性

 public partial class User
{
public string SexStr
{
get
{
string end = "<暂无>";
if (this._Sex != null)
{
end = Convert.ToBoolean(this._Sex) ? "男" : "女";
}
return end;
}
}
public bool SexStr1
{
get
{
bool end=false; if (this._Sex != null)
{
end = Convert.ToBoolean(this._Sex) ;
}
return end;
}
}
public string NationName
{
get
{
return this.Nation1.NationName;
}
}
public string BirStr
{
get
{
string end = "<暂无>";
if(this._Birthday!=null)
{
end = Convert.ToDateTime(this._Birthday).ToString("yyyy年MM月dd日");
}
return end;
}
}
public int Age
{
get
{
int end=;
if (this._Birthday != null)
{
int y = DateTime.Now.Year;
int a = Convert.ToDateTime(this._Birthday).Year;
end = y-a;
}
return end;
}
}
}

扩展属性

2.HTML代码

<form id="form1" runat="server">
<div id="select">
用户名:<asp:TextBox ID="TextBox1" runat="server" Width=""></asp:TextBox>
性别:<asp:TextBox ID="tb_sex" runat="server" Width="60px"></asp:TextBox>&nbsp
年龄:<asp:DropDownList ID="DropDownList3" runat="server">
<asp:ListItem Selected="True" Value="&lt;=">&gt;=</asp:ListItem>
<asp:ListItem Value="&gt;=">&lt;=</asp:ListItem>
</asp:DropDownList><asp:TextBox ID="tb_age" runat="server" Width="60px"></asp:TextBox>
&nbsp<asp:Button ID="Button2" CssClass="Button" runat="server" Text="查询" />&nbsp&nbsp<a href="Insert.aspx" target="_blank" class="link">添加</a></div> <asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate >
<table style="width: 100%; background-color: #4cff00; text-align: center;">
<tr style="color:#ff6a00;">
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>年龄</td>
<td>民族</td>
<td>操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#0ff;" class="tr_item">
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("SexStr") %></td>
<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("NationName") %></td>
<td><a href="update.aspx?un=<%#Eval("UserName") %>" target="_blank" class="link">修改</a>&nbsp;&nbsp;
<a id="lian" href="delete.aspx?un=<%#Eval("UserName") %>" onclick="return del()" class="link">删除</a></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
//隐藏域放用户输入的多条件查询内容
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
<asp:HiddenField ID="HiddenField3" runat="server" />
<div id="aa">当前第&nbsp<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>&nbsp页&nbsp&nbsp共&nbsp<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>&nbsp页
<asp:Button ID="btn_first" runat="server" CssClass="ye" Text="首页" />&nbsp<asp:Button ID="btn_prev" runat="server" Text="上一页" CssClass="ye" />&nbsp<asp:Button ID="btn_next" runat="server" Text="下一页" CssClass="ye" />&nbsp<asp:Button ID="btn_end" runat="server" Text="末页" CssClass="ye"/>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True"></asp:DropDownList></div>
</form>

3、C#功能实现

 private IEnumerable<global::User> sel(WebDataContext con)
{
var All = con.User.AsEnumerable();
if (HiddenField1.Value.Length > )
{
var namelist = con.User.Where(r => r.UserName.Contains(TextBox1.Text.Trim())); All = All.Intersect(namelist);
} if (HiddenField2.Value == "男" || HiddenField2.Value == "女")
{
var sexlist = con.User.Where(r => Convert.ToBoolean(r.Sex) == (tb_sex.Text.Trim() == "男" ? true : false)); All = All.Intersect(sexlist);
} if (HiddenField3.Value.Length > )
{
int nowyear = DateTime.Now.Year;
try
{
int age = Convert.ToInt32(tb_age.Text.Trim());
int g = nowyear - age;
DateTime d = Convert.ToDateTime(g.ToString() + "-1-1");
if (DropDownList3.SelectedValue == ">=")
{
var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) >= d);
All = All.Intersect(agelist); }
else
{
DateTime dd = Convert.ToDateTime(g.ToString() + "-12-31");
var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) <= dd);
All = All.Intersect(agelist); }
}
catch
{
}
}
return All;
}

查询方法

 int Pagecount = ;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Take(Pagecount).ToList();
Repeater1.DataBind();
}
Label2.Text = "";//当前页
Label3.Text = MaxPageNumber().ToString();
for (int i = ; i <= MaxPageNumber();i++ )
{
DropDownList2.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
} }

初加载

 void Button2_Click(object sender, EventArgs e)//查询按钮
{
HiddenField1.Value = TextBox1.Text.Trim();
HiddenField2.Value = tb_sex.Text.Trim();
HiddenField3.Value = tb_age.Text.Trim();
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Take(Pagecount).ToList();
Repeater1.DataBind();
Label2.Text = "";
Label3.Text = MaxPageNumber().ToString();
DropDownList2.Items.Clear();
for (int i = ; i <= MaxPageNumber(); i++)
{
DropDownList2.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
}
}

查询按钮点击

 void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Skip(Pagecount * (Convert.ToInt32(DropDownList2.SelectedValue) - )).Take(Pagecount).ToList();
Repeater1.DataBind();
}
Label2.Text =DropDownList2.SelectedValue; }

快捷跳转

 void btn_first_Click(object sender, EventArgs e)
{
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Take(Pagecount).ToList();
Repeater1.DataBind();
}
Label2.Text ="";
DropDownList2.SelectedValue = "";
}

首页

 void btn_end_Click(object sender, EventArgs e)
{
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Skip(Pagecount * (Convert.ToInt32(Label3.Text) - )).Take(Pagecount).ToList();
Repeater1.DataBind();
}
Label2.Text = Label3.Text;
DropDownList2.SelectedValue = Label3.Text;
}

末页

 void btn_prev_Click(object sender, EventArgs e)
{
int NowNumber = Convert.ToInt32(Label2.Text) -;
if (NowNumber <)
{
return;
}
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Skip(Pagecount * (NowNumber - )).Take(Pagecount).ToList();
Repeater1.DataBind();
} Label2.Text = NowNumber.ToString();
DropDownList2.SelectedValue = NowNumber.ToString();
}

上一页

 void btn_next_Click(object sender, EventArgs e)
{
int NowNumber = Convert.ToInt32(Label2.Text) + ;
if (NowNumber > Convert.ToInt32(Label3.Text))
{
return;
}
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
Repeater1.DataSource = All.Skip(Pagecount * (NowNumber - )).Take(Pagecount).ToList();
Repeater1.DataBind();
} Label2.Text = NowNumber.ToString();
DropDownList2.SelectedValue = NowNumber.ToString(); }

下一页

 public int MaxPageNumber()
{
using (WebDataContext con = new WebDataContext())
{
var All = sel(con);
double nu = All.ToList().Count / (Pagecount * 1.0);
int num = Convert.ToInt32(Math.Ceiling(nu));
return num;
}
}

计算总页数

Linq的分页与组合查询的配合使用的更多相关文章

  1. ajax分页与组合查询配合使用

    使用纯HTML页与js.ajax.Linq实现分页与组合查询的配合使用 <body> <div id="top"><input type=" ...

  2. Webform(Linq高级查、分页、组合查询)

    一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...

  3. LINQ 小项目【组合查询、分页】

    使用 linq 在网页上对用户信息增删改,组合查询,分页显示 using System; using System.Collections.Generic; using System.Linq; us ...

  4. Webform(分页与组合查询配合使用)

    1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...

  5. webform 分页、组合查询综合使用

    界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...

  6. Webform(分页、组合查询)

    一.分页 1.写查询方法: public List<Student> Select(int PageCount, int PageNumber) {//PageCount为每页显示条数,P ...

  7. WebForm 分页与组合查询

    1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...

  8. WebForm 分页、组合查询--2017年1月5日

    sql = "select * from Commodity"; hs = new Hashtable(); if (txt_name.Text.Trim() != "& ...

  9. linq分页组合查询

    一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...

随机推荐

  1. 【JQ+锚标记实现点击页面回到顶部】

    前言:今天想写个页面常用到的[点击回到页面顶部或是首页的功能],生活和职场一样,总会有低谷的时候,这个时候咱也别怂.别怂.别怂,说三遍!那都不是事,工作没了,再找呗,就像我上周五,团队解散那天,我是笑 ...

  2. SQL之case when then用法

    case具有两种格式.简单case函数和case搜索函数. 按 Ctrl+C 复制代码 这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限 ...

  3. CSS系列:CSS中盒子之间的关系

    1. 标准文档流 标准文档流是值在不使用其他的雨排列和定位相关的特殊CSS规则时,各种元素的排列规则. 1.1 块级元素(block level) 块级元素不会排在同一行中,总是以一个块的形式表现出来 ...

  4. MySql 及 MySql WorkBench使用大全

    Mysql安装步骤 1. 下载MySQL Community Server 5.6.13 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\ ...

  5. 前端学PHP之面向对象系列第四篇——关键字

    × 目录 [1]public [2]protected [3]private[4]final[5]static[6]const[7]this[8]self[9]parent 前面的话 php实现面向对 ...

  6. 【原创】开源Math.NET基础数学类库使用(01)综合介绍

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  7. 近期博客内容的规划(关于Swift语言)

    因为最近事情比较多,有一段时间没有发表博客了.前一段时间,利用空余时间翻译了一本关于Swif的书籍,过一段时间就会出版吧.通过翻译此书,英语水平没提高多少,不过Swift算是系统的学习了一下. 在翻译 ...

  8. 数据库SQL Service 2014中文版的安装和配置教程

    一.我的电脑环境 1.windows8.1(64位) 2.之前电脑没有安装数据库的软件 二.装机之前准备(我这儿提供百度云保存和下载) 1.下载一个“Sql service 2014中文版” http ...

  9. (五)WebGIS中通过行列号来换算出多种瓦片的URL 之在线地图

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这篇文章里,我主要针对OGC标准中的WMS.WMTS以及Ar ...

  10. jQuery.grep()

    什么是jQuery.grep()? jQuery.grep()是一个查找满足过滤函数的数组元素的函数.原始数组不受影响,返回值为数组. 用法介绍: 写法: jQuery.grep( array, fu ...