WebFrom 小程序【条件查询与分页整合】
将前面的条件查询功能与分页显示整合到一个页面中
<%@ 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>
</head>
<body>
<form id="form1" runat="server"> <br />
名称:<asp:TextBox ID="txt_name" runat="server"></asp:TextBox>
油耗:<asp:DropDownList ID="dr_oil" runat="server">
<asp:ListItem Text="大于" Value=">"></asp:ListItem>
<asp:ListItem Text="小于" Value="<"></asp:ListItem>
<asp:ListItem Text="大于等于" Value=">="></asp:ListItem>
<asp:ListItem Text="小于等于" Value="<="></asp:ListItem>
<asp:ListItem Text="等于" Value="="></asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txt_oil" runat="server"></asp:TextBox>
价格:<asp:DropDownList ID="dr_Price" runat="server">
<asp:ListItem Text="任意价格" Value="null"></asp:ListItem>
<asp:ListItem Text="20万至30万" Value="price >=20 and price <=30"></asp:ListItem>
<asp:ListItem Text="30万至40万" Value="price >=30 and price <=40"></asp:ListItem>
<asp:ListItem Text="大于40万" Value="price > 40"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="查询" />
<br /><br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br /><br /> <table style="width: 100%; text-align: center; background-color: navy;">
<tr style="color: white;">
<td>ids</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("Oil") %></td>
<td><%#Eval("Powers") %></td>
<td><%#Eval("Exhaust") %></td>
<td><%#Eval("Price") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<br />
当前第[
<asp:Literal ID="lit_NowNumber" runat="server" Text=""></asp:Literal>
]页
共[
<asp:Literal ID="lit_MaxNumber" runat="server" Text=""></asp:Literal>
]页
<asp:Button ID="btn_first" runat="server" Text="首页" />
<asp:Button ID="btn_prev" runat="server" Text="上一页" />
<asp:Button ID="btn_next" runat="server" Text="下一页" />
<asp:Button ID="btn_last" runat="server" Text="尾页" />
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server"></asp:DropDownList>
<asp:Button ID="btn_jump" runat="server" Text="跳转" />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> </form>
</body>
</html>
展示页代码
using System;
using System.Collections;
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 PageCount = ; //每页显示条数 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = new carData().Select(PageCount, );//绑定所有数据
Repeater1.DataBind(); lit_MaxNumber.Text = MaxPageNumber().ToString(); //将一共有多少页绑定到下拉列表中
for (int i = ; i <= MaxPageNumber(); i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList1.Items.Add(li);
} }
btn_last.Click += btn_last_Click;
btn_next.Click += btn_next_Click;
btn_prev.Click += btn_prev_Click;
btn_first.Click += btn_first_Click;
btn_jump.Click += btn_jump_Click; DropDownList1.SelectedIndexChanged += btn_jump_Click;//下拉列表选值改变时,查询结果立刻改变 Button1.Click += Button1_Click;
} //组合查询
void Button1_Click(object sender, EventArgs e)
{
Repeater1.DataSource = EndData();
Repeater1.DataBind();
lit_NowNumber.Text = ""; //最大页数改变*******
lit_MaxNumber.Text = MaxPageNumber2().ToString(); } //跳转
void btn_jump_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(DropDownList1.SelectedValue);
//将下一页数据绑定
Repeater1.DataSource = new carData().Select(PageCount, a);
Repeater1.DataBind(); //将当前显示的页数改变到页面上去
lit_NowNumber.Text = a.ToString();
} //首页
void btn_first_Click(object sender, EventArgs e)
{
//将第一页数据绑定
Repeater1.DataSource = EndData();
Repeater1.DataBind(); //将当前显示的页数改变到页面上去
lit_NowNumber.Text = "";
} //上一页
void btn_prev_Click(object sender, EventArgs e)
{
//获取当前页数,计算上一页页数
int nextNumber = Convert.ToInt32(lit_NowNumber.Text) - ; if (nextNumber < )
{
return;
} //将下一页数据绑定到
Repeater1.DataSource = EndData(nextNumber);
Repeater1.DataBind(); //将当前显示的页数改变到页面上去
lit_NowNumber.Text = nextNumber.ToString();
} //下一页
void btn_next_Click(object sender, EventArgs e)
{
//获取当前页数,计算下一页页数
int nextNumber = Convert.ToInt32(lit_NowNumber.Text) + ; if (nextNumber > MaxPageNumber2())
{
return;
} //将下一页数据绑定到
Repeater1.DataSource = EndData(nextNumber);
Repeater1.DataBind(); //将当前显示的页数改变到页面上去
lit_NowNumber.Text = nextNumber.ToString();
} //尾页
void btn_last_Click(object sender, EventArgs e)
{
//将尾页数据绑定到
Repeater1.DataSource = new carData().Select(PageCount, MaxPageNumber2());
Repeater1.DataBind(); //将当前显示的页数改变到页面上去
lit_NowNumber.Text = MaxPageNumber().ToString();
} //计算页数
public int MaxPageNumber()
{
int a = ;
int maxcount = new carData().SelectCount();
decimal d = Convert.ToDecimal(maxcount) / PageCount; //两个 int 计算 获得 int 类型的数据
a = Convert.ToInt32(Math.Ceiling(d));
return a;
} //查询每一页的方法
public List<car> EndData(int n)
{
int count = ;
string tsql = "select top " + PageCount + " *from car "; string sql1 = ""; if (txt_name.Text.Trim().Length > )
{
sql1 += "where name like '%" + txt_name.Text.Trim() + "%' ";
count++;
} if (txt_oil.Text.Trim().Length > )
{
if (count > )
{
sql1 += "and oil " + dr_oil.SelectedValue + " " + txt_oil.Text.Trim() + " ";
}
else
{
sql1 += "where oil " + dr_oil.SelectedValue + " " + txt_oil.Text.Trim() + " ";
}
count++;
} if (dr_Price.SelectedValue != "null")
{
if (count > )
{
sql1 += " and " + dr_Price.SelectedValue;
}
else
{
sql1 += " where " + dr_Price.SelectedValue;
}
count++;
} tsql += sql1; if (count > )
{
tsql += " and ids not in(select top " + (PageCount * (n - )) + " ids from car " + sql1 + ")";
}
else
{
tsql += " where ids not in(select top " + (PageCount * (n - )) + " ids from car " + sql1 + ")";
} Label1.Text = tsql; List<car> clist = new carData().SelectAll(tsql, new Hashtable());
return clist;
} //查询所有记录的方法
public int MaxPageNumber2()
{
int end = ;
int count = ;
string tsql = "select count(*) from car "; string sql1 = ""; if (txt_name.Text.Trim().Length > )
{
sql1 += "where name like '%" + txt_name.Text.Trim() + "%' ";
count++;
} if (txt_oil.Text.Trim().Length > )
{
if (count > )
{
sql1 += "and oil " + dr_oil.SelectedValue + " " + txt_oil.Text.Trim() + " ";
}
else
{
sql1 += "where oil " + dr_oil.SelectedValue + " " + txt_oil.Text.Trim() + " ";
}
count++;
} if (dr_Price.SelectedValue != "null")
{
if (count > )
{
sql1 += " and " + dr_Price.SelectedValue;
}
else
{
sql1 += " where " + dr_Price.SelectedValue;
}
count++;
} tsql += sql1; int aaa = new carData().SelectCount(tsql);
Label2.Text = aaa.ToString(); end = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(aaa) / PageCount));
return end; } }
后台代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web; /// <summary>
/// carData 的摘要说明
/// </summary>
public class carData
{
SqlConnection conn = null;
SqlCommand cmd = null; public carData()
{
conn = new SqlConnection("server=.;database=Data0216;user=sa;pwd=123");
cmd = conn.CreateCommand();
} //第一次加载时查询所有数据( 每条显示多少, 第几页)
public List<car> Select(int pcount, int pnumber)
{
List<car> clist = new List<car>();
cmd.CommandText = "select top " + pcount + " * from car where ids not in(select top " + (pcount * (pnumber - )) + " ids from car)";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
car c = new car();
c.Ids = Convert.ToInt32(dr["ids"]);
c.Code = dr["code"].ToString();
c.Name = dr["name"].ToString();
c.Oil = Convert.ToDecimal(dr["oil"]);
c.Powers = Convert.ToInt32(dr["powers"]);
c.Exhaust = Convert.ToInt32(dr["exhaust"]);
c.Price = Convert.ToDecimal(dr["price"]);
clist.Add(c);
}
conn.Close();
return clist;
} //组合查询的所有结果
public int SelectCount(string tsql)
{
int a = ;
cmd.CommandText = tsql;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
a = Convert.ToInt32(dr[]);
conn.Close();
return a;
} //将查询语句放入字符串中传值,
public List<car> SelectAll(string tsql, Hashtable hh)
{
List<car> clist = new List<car>();
cmd.CommandText = tsql;
cmd.Parameters.Clear();
foreach (string s in hh.Keys)
{
cmd.Parameters.Add(s, hh[s]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
car c = new car();
c.Ids = Convert.ToInt32(dr["ids"]);
c.Code = dr["code"].ToString();
c.Name = dr["name"].ToString();
c.Oil = Convert.ToDecimal(dr["oil"]);
c.Powers = Convert.ToInt32(dr["powers"]);
c.Exhaust = Convert.ToInt32(dr["exhaust"]);
c.Price = Convert.ToDecimal(dr["price"]);
clist.Add(c);
}
conn.Close();
return clist;
} }
方法
WebFrom 小程序【条件查询与分页整合】的更多相关文章
- SSM整合 mybatis多条件查询与分页
多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...
- WebFrom 小程序【条件查询】
实现按照各种条件对数据库进行综合查询 基本功能:可以根据用户需要灵活查询 重难点:各种条件的可能.限制. public List<users> selectA( string str,Ha ...
- 微信小程序的应用及信息整合,都放到这里了
微信小程序终于开始公测了,这篇文章也终于可以发布了. 这篇文章可以说是微信小程序系列三部曲最后一篇.8 月份,小程序推出前,我写了<别开发 app 了>详细阐述了为什么创业应该放弃原生 a ...
- 微信小程序火车票查询 直取12306数据
最终效果图: 样式丑哭了,我毕竟不是前端,宗旨就是练练手,体验微信小程序的开发,以最直接的方式获取12306数据查询火车票. 目录结构: search1是出发站列表,search2是目的站列表,命名没 ...
- 微信小程序--火车票查询
微信小程序--火车票查询 写在最前面 微信小程序自九月份推出内测资格以来,经历了舆论热潮到现在看似冷清,但并不意味着大家不那么关注或者不关注了.我想不管是否有内测资格,只要是感兴趣的开发者已经进入潜心 ...
- 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项
小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...
- TP条件查询和分页查询
一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...
- 微信小程序中如何实现分页下拉加载?(附源码)
转眼间坚持写教你微信小程序系列已经有十节系列课程了,每天的工作压力繁重,小女子也不知道自己还能坚持这样的系列教程多久.只希望每篇教程真的对大家有帮助.这节课我们要介绍的就是如何实现分页的下拉加载,我们 ...
随机推荐
- Python开发——6.文件操作
一.文件操作 1.文件操作的处理流程 打开文件得到文件句柄并赋值给一个变量====>通过句柄对文件进行分析====>关闭文件 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open( ...
- 利用foo函数的Bof漏洞攻击:构造攻击字符串
利用foo函数的Bof漏洞攻击:构造攻击字符串 一.基础知识储备 objdump反汇编指令.gdb函数调试运行.Perl语言.|管道符 二.实验步骤 1. 通过反汇编了解程序功能及代码 ①反汇编查看文 ...
- docer compose学习
docker-compose 编排lnmp容器 https://gitee.com/lichenxin/docker-compose-mnpr version: '2' services: mysql ...
- SSM_CRUD新手练习(8)搭建BootStrap分页页面
经过Spring单元测试模拟请求,我们能够成功的取出数据,接下来,我们就开始写用来显示查询数据的分页页面吧. 我们使用Bootstrap来帮助我们快速开发漂亮的页面,具体怎么用可以查看Bootst ...
- 【jenkins 忘记密码】忘记Jenkins管理员密码的解决办法
一.admin密码未更改情况 1.进入\Jenkins\secrets目录,打开initialAdminPassword文件,复制密码: 2.访问Jenkins页面,输入管理员admin,及刚才的密码 ...
- git 中Pull/Request 的初步
1. 目的: pull/request (简称PR) 是 项目管理者(管理者)和项目开发者(开发者)之间提交和确认工作成果的机制. 2. 流程: 开发者: 在本地创建特性分支. > git ch ...
- Lerning Entity Framework 6 ------ Complex types
Complex types are classes that map to a subset of columns of a table.They don't contains key. They a ...
- 《http权威指南》读书笔记2
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- H5的Page Visibility API
概述 哈哈,又学了一个H5的API.今天突然对动态获取网页的选中状态很感兴趣,然后去查了下,发现真的有个API控制它--Page Visibility API.于是把学到的东西记录下来,供以后开发时参 ...
- [原]Windows Azure开发之Linux虚拟机
Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是虚 ...