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> 
年龄:<asp:DropDownList ID="DropDownList3" runat="server">
<asp:ListItem Selected="True" Value="<=">>=</asp:ListItem>
<asp:ListItem Value=">="><=</asp:ListItem>
</asp:DropDownList><asp:TextBox ID="tb_age" runat="server" Width="60px"></asp:TextBox>
 <asp:Button ID="Button2" CssClass="Button" runat="server" Text="查询" />  <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>
<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">当前第 <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> 页  共 <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label> 页
<asp:Button ID="btn_first" runat="server" CssClass="ye" Text="首页" /> <asp:Button ID="btn_prev" runat="server" Text="上一页" CssClass="ye" /> <asp:Button ID="btn_next" runat="server" Text="下一页" CssClass="ye" /> <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;
}
}
计算总页数