实体类:
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// goods 的摘要说明 /// </summary> public class goods { public goods() { // // TODO: 在此处添加构造函数逻辑 // } public int ids { get; set; } public string goodsname { get; set; } public string number { get; set; } public string sprice { get; set; } public DateTime intime { get; set; } public string gtel { get; set; } public string goodsbase { get; set; } }
数据访问类:
public List<goods> select(string tsql,Hashtable hhs) { List<goods> glist = new List<goods>(); cmd.CommandText = tsql; cmd.Parameters.Clear(); foreach (string s in hhs.Keys) { cmd.Parameters.AddWithValue(s,hhs[s]); } conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { goods g = new goods(); g.ids = Convert.ToInt32(dr[0]); g.goodsname = dr[1].ToString(); g.number = dr[2].ToString(); g.sprice = dr[3].ToString(); g.intime = Convert.ToDateTime(dr[4]); g.gtel = dr[5].ToString(); g.goodsbase = dr[6].ToString(); glist.Add(g); } } conn.Close(); return glist; }
aspx中:
<%@ 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> .tb1 { 100%; text-align:center; } .a { background-color:navy; color:white; } .b { background-color:orange; color:white; } .b:hover { background-color:gray; } </style> </head> <body> <form id="form1" runat="server"> <div> 货品名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 数量: <asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem>=</asp:ListItem> <asp:ListItem>>=</asp:ListItem> <asp:ListItem><=</asp:ListItem> </asp:DropDownList> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 单价: <asp:DropDownList ID="DropDownList2" runat="server"> <asp:ListItem>=</asp:ListItem> <asp:ListItem>>=</asp:ListItem> <asp:ListItem><=</asp:ListItem> </asp:DropDownList> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="查询" /> <asp:Button ID="Button2" runat="server" Text="查询2" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <table class="tb1"> <tr class="a"> <td>编号</td> <td>货品名称</td> <td>数量</td> <td>单价</td> <td>进货时间</td> <td>联系人电话</td> <td>仓库号</td> <td>操作</td> </tr> </HeaderTemplate> <ItemTemplate> <tr class="b"> <td><%#Eval("ids") %></td> <td><%#Eval("goodsname") %></td> <td><%#Eval("number") %></td> <td><%#Eval("sprice") %></td> <td><%#Eval("intime","{0:yyyy年MM月dd日}") %></td> <td><%#Eval("gtel") %></td> <td><%#Eval("goodsbase") %></td> <td> <a href="update.aspx?id=<%#Eval("ids")%>" target="_blank">修改</a> <a href="delete.aspx?id=<%#Eval("ids")%>" target="_blank">删除</a> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> 当前第【<asp:Label ID="Label_nowpage" runat="server" Text="1"></asp:Label>】页   共【<asp:Label ID="Label_maxpage" runat="server" Text="加载中.."></asp:Label>】页   <asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>   <asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton> </div> </form> </body> </html>
cs中:
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 c = 5; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Repeater1.DataSource = new goodsdata().select(c,1); Repeater1.DataBind(); int allcount=new goodsdata().select(returntsql(1,true),hs).Count; Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString();//查询最大页数 btn_prev.Enabled = false; } Button2.Click += Button2_Click; Button1.Click += Button1_Click; btn_next.Click += btn_next_Click; btn_prev.Click += btn_prev_Click; } void btn_prev_Click(object sender, EventArgs e)//上一页 { int page = Convert.ToInt32(Label_nowpage.Text) - 1; Repeater1.DataSource = new goodsdata().select(returntsql(page, false), hs); Repeater1.DataBind(); Label_nowpage.Text = page.ToString(); Label1.Text = returntsql(page, false); int allcount = new goodsdata().select(returntsql(1, true), hs).Count; Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString(); if (Label_nowpage.Text == "1") { btn_prev.Enabled = false; } btn_next.Enabled = true; } void btn_next_Click(object sender, EventArgs e)//下一页 { int page = Convert.ToInt32(Label_nowpage.Text)+1; Repeater1.DataSource = new goodsdata().select(returntsql(page,false),hs); Repeater1.DataBind(); Label_nowpage.Text = page.ToString(); Label1.Text = returntsql(page,false); int allcount = new goodsdata().select(returntsql(1, true), hs).Count; Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString(); if (Label_nowpage.Text == Label_maxpage.Text) { btn_next.Enabled = false; } btn_prev.Enabled = true; } Hashtable hs = new Hashtable(); void Button1_Click(object sender, EventArgs e)//查询方法一,加分页 { Label1.Text = returntsql(1,false); Repeater1.DataSource = new goodsdata().select(returntsql(1,false), hs); Repeater1.DataBind(); Label_nowpage.Text = "1"; int allcount = new goodsdata().select(returntsql(1, true), hs).Count; Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString(); if (Label_nowpage.Text == Label_maxpage.Text) { btn_next.Enabled = false; } } public string returntsql(int nowpagenumber,bool isall)//封装的返回sql语句的方法,isall参数为是否选择全部,用于计算总页数 { hs.Clear(); int count = 0; string sql = "select top " + c + "*from goods"; if (isall) { sql = "select*from goods"; } string csql=""; if (TextBox1.Text.Trim().Length > 0) { sql += " where goodsname like @goodsname"; csql += " where goodsname like @goodsname"; hs.Add("@goodsname", "%" + TextBox1.Text + "%"); count++; } if (TextBox2.Text.Trim().Length > 0) { if (count > 0) { sql += " and number" + DropDownList1.SelectedValue + " @number"; csql += " and number" + DropDownList1.SelectedValue + " @number"; } else { sql += " where number" + DropDownList1.SelectedValue + " @number"; csql += " where number" + DropDownList1.SelectedValue + " @number"; } hs.Add("@number", TextBox2.Text); count++; } if (TextBox3.Text.Trim().Length > 0) { if (count > 0) { sql += " and sprice" + DropDownList2.SelectedValue + " @sprice"; csql += " and sprice" + DropDownList2.SelectedValue + " @sprice"; } else { sql += " where sprice" + DropDownList2.SelectedValue + "@sprice"; csql += " where sprice" + DropDownList2.SelectedValue + "@sprice"; } hs.Add("@sprice", TextBox3.Text); count++; } if (count > 0) { sql += " and ids not in(select top " + (c * (nowpagenumber - 1)) + " ids from goods " + csql + ")"; } else { sql += " where ids not in(select top " + (c * (nowpagenumber - 1)) + " ids from goods " + csql + ")"; } return sql; } void Button2_Click(object sender, EventArgs e)//查询方法2,没有分页 { Hashtable hs = new Hashtable(); string sql = "select*from goods"; if (TextBox1.Text.Trim().Length > 0) { sql += " where goodsname like @goodsname"; hs.Add("@goodsname", "%" + TextBox1.Text + "%"); } else { sql += " where 1=1"; } if (TextBox2.Text.Trim().Length > 0) { sql += " and number" + DropDownList1.SelectedValue + " @number"; hs.Add("@number", TextBox2.Text); } else { sql += " and 1=1"; } if (TextBox3.Text.Trim().Length > 0) { sql += " and sprice= @sprice"; hs.Add("@sprice", TextBox3.Text); } else { sql += " and 1=1"; } Repeater1.DataSource = new goodsdata().select(sql, hs); Repeater1.DataBind(); } }