1 USE master 2 GO 3 IF EXISTS(SELECT * FROM sysDatabases WHERE name='BookDB') 4 DROP DATABASE BookDB 5 GO 6 CREATE DATABASE BookDB 7 GO 8 USE BookDB 9 GO 10 11 --表BookType 12 CREATE TABLE BookType 13 ( 14 TypeId int IDENTITY PRIMARY KEY, --编号,非空,主键 15 TypeName varchar(25) NOT NULL, --类型名称,非空 16 ParentId int NOT NULL --父节点编号,非空 17 ) 18 GO 19 20 --插入数据 21 INSERT INTO BookType values('计算机与互联网',0) 22 INSERT INTO BookType values('.NET',1) 23 INSERT INTO BookType values('C++',1) 24 INSERT INTO BookType values('JAVA',1) 25 INSERT INTO BookType values('PHP',1) 26 27 INSERT INTO BookType values('文学',0) 28 INSERT INTO BookType values('中国名著',6) 29 INSERT INTO BookType values('外国名著',6) 30 GO 31 select * from BookType 32 -- 表BookInfo 33 CREATE TABLE BookInfo 34 ( 35 BookId int IDENTITY PRIMARY KEY, --编号 36 TypeId int NOT NULL REFERENCES BookType(TypeId), --类型编号 37 BookCode char(13) NOT NULL, --条形码 38 BookName varchar(50) NOT NULL, --书名 39 BookPrice numeric(18,2) NOT NULL, --价格 40 BookDisCount numeric(4,1) NOT NULL, --折扣 41 BookAuthor varchar(25) NOT NULL, --作者 42 BookPress varchar(25) NOT NULL, --出版社 43 PressTime datetime NOT NULL, --出版时间 44 PicPath varchar(25) NOT NULL, --图片路径 45 SellCount int NOT NULL --销售数量 46 ) 47 --插入数据 48 insert into BookInfo values(2,'9787302146452','C#程序设计基础',60,0.8,'Charles Petzold','人民邮电出版社','2011-02-01','9787302146452.jpg',51) 49 insert into BookInfo values(2,'9787121017223','C#案例开发集锦',40,0.7,'Stanley B.Lippman','电子工业出版社','2011-02-19','9787121017223.jpg',67) 50 insert into BookInfo values(2,'9787302133247','ASP.NET入门精典',100,0.6,'Charles Petzold','清华出版社','2012-04-25','9787302133247.jpg',32) 51 insert into BookInfo values(2,'9787115129659','ASP.NET开发技术详解',89,0.5,'Jeff Prosise','人民邮电出版社','2011-02-01','9787115129659.jpg',36) 52 53 insert into BookInfo values(3,'9787115136923','21天学通C++',69,0.8,'Bjarne Stroustrup','人民邮电出版社','2007-02-01','9787115136923.jpg',67) 54 insert into BookInfo values(3,'9787115145543','C++ Primer',120,0.7,'Stanley B.Lippman','清华出版社','2001-02-05','9787115145543.jpg',9) 55 insert into BookInfo values(3,'9787111108078','C++编程思想',130,0.6,'Nicolai M.Josuttis','人民邮电出版社','2011-02-25','9787111108078.jpg',8) 56 insert into BookInfo values(3,'9787113061548','C++游戏程序设计',89,0.5,'Stanley B.Lippman','人民邮电出版社','2011-02-01','9787113061548.jpg',0) 57 58 insert into BookInfo values(4,'9787121036514','Java实例宝典',120,0.7,'Bruce Eckel','人民邮电出版社','2011-02-05','9787121036514.jpg',10) 59 insert into BookInfo values(4,'9787121033038','JavaME最佳实践',130,0.6,'阎宏','电子工业出版社','2012-02-25','9787121033038.jpg',30) 60 insert into BookInfo values(4,'9787121026348','Hibernate开发宝典',89,0.5,'孙卫琴','电子工业出版社','2010-02-01','9787121026348.jpg',55) 61 insert into BookInfo values(4,'9787121032158','J2EE应用开发',150,0.5,'James Gosling','清华出版社','2009-02-01','9787121032158.jpg',0) 62 63 insert into BookInfo values(5,'9787115136923','细说PHP',69,0.8,'Bjarne Stroustrup','人民邮电出版社','2007-02-01','5573e4b4Nb1561288.jpg',10) 64 insert into BookInfo values(5,'9787115145543','从零开始学PHP',120,0.7,'Stanley B.Lippman','清华出版社','2001-02-05','5566e4b4Nb156fe14.jpg',5) 65 insert into BookInfo values(5,'9787111108078','PHP入门经典',130,0.6,'Nicolai M.Josuttis','人民邮电出版社','2011-02-25','55b8a409N20918431.jpg',8) 66 67 --insert into BookInfo values(5,'9787111108078','PHP入门经典',130,0.6,'Nicolai M.Josuttis','人民邮电出版社','2011-02-25','55b8a409N20918431.jpg',888) 68 69 insert into BookInfo values(7,'9787115129661','西游记',66,0.5,'吴承恩','人民邮电出版社','2011-02-01','9787115129659.jpg',50) 70 insert into BookInfo values(7,'9787115129662','水浒传',66,0.5,'施耐庵','人民邮电出版社','2011-02-01','9787115129659.jpg',12) 71 insert into BookInfo values(7,'9787115129663','三国演义',66,0.5,'罗贯中','人民邮电出版社','2011-02-01','9787115129659.jpg',35) 72 insert into BookInfo values(7,'9787115129664','红楼梦',66,0.5,'曹雪芹','人民邮电出版社','2011-02-01','9787115129659.jpg',8) 73 GO 74 CREATE TABLE StarInfo 75 ( 76 Id int NOT NULL IDENTITY PRIMARY KEY, 77 StarName nvarchar(3) NOT NULL 78 ) 79 GO 80 INSERT INTO StarInfo VALUES('白羊座') 81 INSERT INTO StarInfo VALUES('金牛座') 82 INSERT INTO StarInfo VALUES('双子座') 83 INSERT INTO StarInfo VALUES('巨蟹座') 84 INSERT INTO StarInfo VALUES('狮子座') 85 INSERT INTO StarInfo VALUES('处女座') 86 INSERT INTO StarInfo VALUES('天秤座') 87 INSERT INTO StarInfo VALUES('天蝎座') 88 INSERT INTO StarInfo VALUES('射手座') 89 INSERT INTO StarInfo VALUES('摩羯座') 90 INSERT INTO StarInfo VALUES('水瓶座') 91 INSERT INTO StarInfo VALUES('双鱼座') 92 GO 93 CREATE TABLE UserInfo 94 ( 95 LoginId varchar(20) NOT NULL PRIMARY KEY, --账号 96 LoginPwd varchar(20) NOT NULL, --密码 97 NickName nvarchar(10) , --昵称 98 Sex nchar(1) , --性别 99 Brithday datetime , --生日 100 Hobby varchar(50) , --爱好 101 Face varchar(50) , --头象路径 102 BloodType varchar(2) , --血型 103 StarID int REFERENCES StarInfo(Id), --星座 104 Email varchar(50) --邮箱 105 ) 106 GO 107 INSERT INTO UserInfo VALUES('admin','123456','管理员','男','1988-8-8','1,2','admin.jpg','O',7,'admin@flfa.com') 108 INSERT INTO UserInfo VALUES('doctorQ','Q123456','Q博士','男','1999-9-9','2,3,4','doctorQ.jpg','B',6,'doctorQ@flfa.com') 109 INSERT INTO UserInfo VALUES('doctorR','R654321','R博士','男','1997-7-7','4,5,6','doctorR.jpg','AB',9,'doctorR@flfa.com') 110 INSERT INTO UserInfo VALUES('babybazzi','123456','宝宝','女','1998-8-18','2,4','babybazzi.jpg','A',3,'babybazzi@flfa.com') 111 INSERT INTO UserInfo VALUES('Lodumani','123456','海盗船长','男','1999-9-29','3,4','Lodumani.jpg','B',7,'Lodumani@flfa.com') 112 INSERT INTO UserInfo VALUES('liligirlie','lili123456','妮妮','女','2000-1-1','5,6','liligirlie.jpg','AB',12,'liligirlie@flfa.com') 113 INSERT INTO UserInfo VALUES('takiqiqi','123456','奇奇','男','1989-8-18','1,2,4','takiqiqi.jpg','O',3,'takiqiqi@flfa.com') 114 INSERT INTO UserInfo VALUES('QiangMos','123456','小强','男','1999-9-9','2,4,6','QiangMos.jpg','O',5,'QiangMos@flfa.com') 115 INSERT INTO UserInfo VALUES('mystical','mystical','神秘工头','男','1999-9-19','1,3,5','mystical.jpg','A',4,'mystical@flfa.com') 116 GO 117 118 select * from UserInfo where LoginId like '%%' 119 120 121 --存储过程 122 IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE name='P_GetUserPaging') 123 DROP PROC P_GetUserPaging 124 GO 125 --为存储过程添加参数(output为输出参数) 126 CREATE PROC P_GetUserPaging(@pageIndex INT,@pageSize INT 127 ,@whereStr VARCHAR(200),@Count INT=0 OUTPUT,@order nvarchar(100)) 128 AS 129 DECLARE @sql NVARCHAR(2000) 130 SET @sql = N'SELECT * FROM 131 (SELECT row_number() OVER(ORDER BY '+@order+') AS rownum, * FROM UserInfo 132 WHERE 1=1 '+@whereStr+' ) a 133 WHERE a.rownum BETWEEN (1+('+convert(varchar(10),@pageIndex)+'-1)*' 134 +convert(varchar(10),@pageSize) 135 +') AND '+convert(varchar(10),@pageIndex)+'*'+convert(varchar(10),@pageSize)+'' 136 EXEC(@sql) --将字符串当做sql命令执行 137 138 SET @sql = N'SELECT @a=count(*) FROM UserInfo where 1=1 ' + @whereStr 139 EXEC sp_executesql @sql,N'@a int output',@Count OUTPUT 140 GO 141 142 --查看存储过程 143 DECLARE @count INT 144 EXEC P_GetUserPaging 1,3,' and loginId like ''%a%'' ',@count output,'LoginId asc' 145 PRINT @count
页面代码
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridView_15.aspx.cs" Inherits="GridView_GridView_15" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 8 <title>翻页</title> 9 <script src="../js/jquery-1.7.1.js"></script> 10 <script src="../js/bootstrap.js"></script> 11 <link href="../css/bootstrap.min.css" rel="stylesheet" /> 12 <style> 13 .txt { 14 width: 100px; 15 height: 26px; 16 } 17 .guanggao { 18 height: 200px; 19 position: fixed; 20 background-color: lightblue; 21 } 22 </style> 23 <script>//光棒效果 24 //$(function () { 25 // var $color; 26 // $("#GridView1 > tbody > tr:not(:eq(0))").mouseover( 27 // function () { 28 // $color = $(this).css("backgroundColor") 29 // $(this).css("backgroundColor","lightblue") 30 // } 31 // ).mouseout(function () { 32 // $(this).css("backgroundColor",$color) 33 // }); 34 //}); 35 function myfunction() { 36 37 } 38 </script> 39 </head> 40 <body> 41 42 <form id="form1" runat="server"> 43 <%--<div id="guanggao" class="text-center" style="width: 400px; height: 200px; border-radius:25px; background-color: lightblue; opacity: 0.5; position: fixed; right: 5px; bottom: 5px;"> 44 这是一个广告 45 <a onclick='document.getElementById("guanggao").style.display = "none";' style="border: 1px solid black; position: relative; float: right;">X</a> 46 </div>--%> 47 <div> 48 用户名:<asp:TextBox ID="txtLoginId" CssClass="" runat="server"></asp:TextBox> 49 <%--<asp:Button ID="btnSel" runat="server" CssClass="btn btn-default btn-info" Text="查询" OnClick="btnSel_Click" />--%> 50 昵称:<asp:TextBox ID="txtNickName" runat="server"></asp:TextBox> 51 <asp:Button ID="Button4" runat="server" CssClass="btn btn-default btn-info" Text="查询" OnClick="btnSel_Click" /> 52 </div> 53 <div> 54 <asp:CheckBox ID="delChk" runat="server" Text="启用批量删除" OnCheckedChanged="delChk_CheckedChanged" AutoPostBack="true" /> 55 <asp:Button ID="btnDel" runat="server" Text="批量删除" Enabled="false" OnClick="Button5_Click" /> 56 </div> 57 <div> 58 <asp:GridView ID="GridView1" runat="server" 59 CellPadding="2" ForeColor="Black" 60 GridLines="None" AutoGenerateColumns="False" 61 OnRowDeleting="GridView1_RowDeleting" 62 OnRowEditing="GridView1_RowEditing" 63 OnRowUpdating="GridView1_RowUpdating" 64 OnRowCancelingEdit="GridView1_RowCancelingEdit" 65 DataKeyNames="Sex,StarID,Hobby" 66 CssClass="table table-striped" 67 OnSorting="GridView1_Sorting" 68 AllowSorting="true" 69 OnRowDataBound="GridView1_RowDataBound" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px"> 70 <AlternatingRowStyle BackColor="PaleGoldenrod" /> 71 <Columns> 72 <asp:TemplateField HeaderText="删除" Visible="false"> 73 <ItemTemplate> 74 <asp:CheckBox ID="CheckBox1" runat="server" /> 75 </ItemTemplate> 76 </asp:TemplateField> 77 <asp:TemplateField HeaderText="账号" SortExpression="LoginId"> 78 <%--<EditItemTemplate> 79 <asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("LoginId") %>'></asp:TextBox> 80 </EditItemTemplate>--%> 81 <ItemTemplate> 82 <asp:Label ID="Label10" runat="server" Text='<%# Bind("LoginId") %>'></asp:Label> 83 </ItemTemplate> 84 </asp:TemplateField> 85 <asp:TemplateField HeaderText="密码" SortExpression="LoginPwd"> 86 <EditItemTemplate> 87 <asp:TextBox ID="TextBox1" CssClass="txt" runat="server" Text='<%# Bind("LoginPwd") %>'></asp:TextBox> 88 </EditItemTemplate> 89 <ItemTemplate> 90 <asp:Label ID="Label1" runat="server" Text='<%# newString( Eval("LoginPwd").ToString()) %>'></asp:Label> 91 </ItemTemplate> 92 </asp:TemplateField> 93 <asp:TemplateField HeaderText="昵称" SortExpression="NickName"> 94 <EditItemTemplate> 95 <asp:TextBox ID="TextBox2" CssClass="txt" runat="server" Text='<%# Bind("NickName") %>'></asp:TextBox> 96 </EditItemTemplate> 97 <ItemTemplate> 98 <asp:Label ID="Label2" runat="server" Text='<%# Bind("NickName") %>'></asp:Label> 99 </ItemTemplate> 100 </asp:TemplateField> 101 <asp:TemplateField HeaderText="性别"> 102 <EditItemTemplate> 103 <asp:RadioButtonList ID="RadioButtonList1" runat="server"> 104 <asp:ListItem>男</asp:ListItem> 105 <asp:ListItem>女</asp:ListItem> 106 </asp:RadioButtonList> 107 </EditItemTemplate> 108 <ItemTemplate> 109 <asp:Label ID="Label3" runat="server" Text='<%# Bind("Sex") %>'></asp:Label> 110 </ItemTemplate> 111 </asp:TemplateField> 112 <asp:TemplateField HeaderText="生日" SortExpression="LoginId"> 113 <EditItemTemplate> 114 <asp:TextBox ID="TextBox4" CssClass="txt" runat="server" Text='<%# Convert.ToDateTime( Eval("Brithday").ToString()).ToString("yyyy-MM-dd") %>'></asp:TextBox> 115 </EditItemTemplate> 116 <ItemTemplate> 117 <asp:Label ID="Label4" runat="server" Text='<%# Convert.ToDateTime( Eval("Brithday").ToString()).ToString("yyyy-MM-dd") %>'></asp:Label> 118 </ItemTemplate> 119 </asp:TemplateField> 120 <asp:TemplateField HeaderText="爱好"> 121 <EditItemTemplate> 122 <asp:CheckBoxList ID="CheckBoxList1" RepeatDirection="Horizontal" RepeatColumns="2" runat="server"> 123 </asp:CheckBoxList> 124 </EditItemTemplate> 125 <ItemTemplate> 126 <asp:Label ID="Label5" runat="server" Text='<%# new PageTools().ConvertIdToString( Eval("Hobby").ToString()) %>'></asp:Label> 127 </ItemTemplate> 128 </asp:TemplateField> 129 <asp:TemplateField HeaderText="头象路径"> 130 <EditItemTemplate> 131 <asp:TextBox ID="TextBox6" CssClass="txt" runat="server" Text='<%# Bind("Face") %>'></asp:TextBox> 132 </EditItemTemplate> 133 <ItemTemplate> 134 <asp:Label ID="Label6" runat="server" Text='<%# Bind("Face") %>'></asp:Label> 135 </ItemTemplate> 136 </asp:TemplateField> 137 <asp:TemplateField HeaderText="血型"> 138 <EditItemTemplate> 139 <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("BloodType") %>' /> 140 <asp:DropDownList ID="DropDownList1" runat="server"> 141 <asp:ListItem>A</asp:ListItem> 142 <asp:ListItem>B</asp:ListItem> 143 <asp:ListItem>AB</asp:ListItem> 144 <asp:ListItem>O</asp:ListItem> 145 </asp:DropDownList> 146 </EditItemTemplate> 147 <ItemTemplate> 148 <asp:Label ID="Label7" runat="server" Text='<%# Bind("BloodType") %>'></asp:Label> 149 </ItemTemplate> 150 </asp:TemplateField> 151 <asp:TemplateField HeaderText="星座" SortExpression="StarID"> 152 <EditItemTemplate> 153 <asp:DropDownList ID="DropDownList2" runat="server"> 154 </asp:DropDownList> 155 </EditItemTemplate> 156 <ItemTemplate> 157 <asp:Label ID="Label8" runat="server" Text='<%# Bind("StarID") %>'></asp:Label> 158 </ItemTemplate> 159 </asp:TemplateField> 160 <asp:TemplateField HeaderText="邮箱"> 161 <EditItemTemplate> 162 <asp:TextBox ID="TextBox9" CssClass="txt" runat="server" Text='<%# Bind("Email") %>'></asp:TextBox> 163 </EditItemTemplate> 164 <ItemTemplate> 165 <asp:Label ID="Label9" runat="server" Text='<%# Bind("Email") %>'></asp:Label> 166 </ItemTemplate> 167 </asp:TemplateField> 168 <asp:TemplateField HeaderText="年龄" SortExpression="LoginId"> 169 <ItemTemplate> 170 <asp:Label ID="Label9_1" runat="server" Text='<%# new PageTools().getAge(Convert.ToDateTime(Eval("Brithday"))) %>'></asp:Label> 171 </ItemTemplate> 172 </asp:TemplateField> 173 <asp:TemplateField HeaderText="操作"> 174 <EditItemTemplate> 175 <asp:Button ID="Button2" CommandName="Update" CssClass="btn btn-default" runat="server" Text="保存" /> 176 <asp:Button ID="Button1" CommandName="Cancel" CssClass="btn btn-default" runat="server" Text="取消" /> 177 </EditItemTemplate> 178 <ItemTemplate> 179 <asp:Button ID="Button2" CommandName="Edit" CssClass="btn btn-default" runat="server" Text="编辑" /> 180 <asp:Button ID="Button1" CommandName="delete" CssClass="btn btn-default" runat="server" Text="删除" /> 181 </ItemTemplate> 182 </asp:TemplateField> 183 </Columns> 184 <FooterStyle BackColor="Tan" /> 185 <HeaderStyle BackColor="Tan" Font-Bold="True" /> 186 <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" /> 187 <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" /> 188 <SortedAscendingCellStyle BackColor="#FAFAE7" /> 189 <SortedAscendingHeaderStyle BackColor="#DAC09E" /> 190 <SortedDescendingCellStyle BackColor="#E1DB9C" /> 191 <SortedDescendingHeaderStyle BackColor="#C2A47B" /> 192 </asp:GridView> 193 <asp:Panel ID="Panel1" runat="server" Visible="false"> 194 没有查询到数据,请重新查询 195 </asp:Panel> 196 <div> 197 <asp:LinkButton CommandName="First" ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">第一页</asp:LinkButton>| 198 <asp:LinkButton CommandName="Prev" ID="LinkButton2" runat="server" OnClick="LinkButton1_Click">上一页</asp:LinkButton>| 199 <asp:LinkButton CommandName="Next" ID="LinkButton3" runat="server" OnClick="LinkButton1_Click">下一页</asp:LinkButton>| 200 <asp:LinkButton CommandName="Last" ID="LinkButton4" runat="server" OnClick="LinkButton1_Click">最后一页</asp:LinkButton> 201 第<asp:TextBox ID="TextBox3" runat="server" Width="41px"></asp:TextBox>页| 202 <asp:Button CommandName="GO" ID="Button3" CssClass="btn btn-default" runat="server" Text="GO" OnClick="LinkButton1_Click" /> 203 共<asp:Label ID="Label11" runat="server" Text="?"></asp:Label>页 204 <asp:DropDownList ID="DropDownList3" OnSelectedIndexChanged="LinkButton1_Click" AutoPostBack="true" runat="server"> 205 <asp:ListItem>1</asp:ListItem> 206 <asp:ListItem>2</asp:ListItem> 207 <asp:ListItem Selected="True">3</asp:ListItem> 208 <asp:ListItem>6</asp:ListItem> 209 <asp:ListItem>9</asp:ListItem> 210 </asp:DropDownList> 211 </div> 212 </div> 213 </form> 214 </body> 215 </html>
后台代码
1 using Bookprj.BLL; 2 using Bookprj.Entity; 3 using System; 4 using System.Collections.Generic; 5 using System.Configuration; 6 using System.Linq; 7 using System.Web; 8 using System.Web.UI; 9 using System.Web.UI.WebControls; 10 11 public partial class GridView_GridView_15 : System.Web.UI.Page 12 { 13 protected void Page_Load(object sender, EventArgs e) 14 { 15 //处理回发 16 if (!IsPostBack) 17 { 18 //翻页功能(当前页数) 19 ViewState["Index"] = 1; 20 //翻页功能(每页显示多少条数据) 21 ViewState["Size"] = DropDownList3.SelectedValue; 22 //翻页功能(总页数) 23 ViewState["maxPage"] = 0; 24 //模糊查询的SQL语句 25 ViewState["str"] = ""; 26 //排序语句的列名 27 ViewState["SortExpression"] = " LoginId "; 28 //排序的方式(递增,递减) 29 ViewState["ascOrdesc"] = " Asc "; 30 //排序的SQL语句 31 ViewState["ordebyStr"] = ViewState["SortExpression"] + " " + ViewState["ascOrdesc"].ToString(); 32 Response.Write("Hello pageLoad"); 33 Load(); 34 } 35 } 36 37 /// <summary> 38 /// 页面绑定数据 39 /// </summary> 40 private void Load() 41 { 42 //声明变量存放存储过程的输出值(统计多少条数据) 43 //拼接模糊查询的SQL语句 44 string where = ViewState["str"].ToString(); 45 int count; 46 GridView1.DataSource = new Bookprj.BLL.UserInfoBLL().getUserInfoAll((int)ViewState["Index"],Convert.ToInt32( ViewState["Size"]), where,out count, ViewState["ordebyStr"].ToString()); 47 GridView1.DataBind(); 48 //声明变量存放数据的总数量 49 //计算出最大页数 50 int maxpage = (int)Math.Ceiling(count * 1.0 / Convert.ToInt32(ViewState["Size"])); 51 ViewState["maxPage"] = maxpage; 52 //页面控件(总页数)的显示赋值 53 Label11.Text = ViewState["maxPage"].ToString(); 54 //页面控件(当前页数)的显示赋值 55 TextBox3.Text = ((int)ViewState["Index"]).ToString(); 56 //没有查询到数据给出相应提示 57 if (count == 0) 58 { 59 Panel1.Visible = true; 60 } 61 else 62 { 63 Panel1.Visible = false; 64 } 65 } 66 67 /// <summary> 68 /// 隐藏密码中间部分 69 /// </summary> 70 /// <param name="str"></param> 71 /// <returns></returns> 72 public string newString(string str) 73 { 74 //隐藏密码 75 string str1 = ""; 76 //for循环打印需要拼接的* 77 for (int i = 0; i < str.Length - 2; i++) 78 { 79 str1 += "*"; 80 } 81 //截取字符串的中间部分替换为* 82 return str.Replace(str.Substring(1, str.Length - 2), str1); 83 } 84 85 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 86 { 87 //string id = (GridView1.Rows[e.RowIndex].Cells[0].Controls[1] as Label).Text; 88 //string id = (GridView1.Rows[e.RowIndex].FindControl("Label1") as Label).Text; 89 //string id = (GridView1.Rows[e.RowIndex].Cells[0].FindControl("Label1") as Label).Text; 90 91 //string id = GridView1.Rows[e.RowIndex].Cells[1].Text;//BoundField 92 93 string id = e.Values["LoginId"].ToString(); 94 //string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); 95 new Bookprj.BLL.UserInfoBLL().delUserInfo(id); 96 Load(); 97 } 98 99 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 100 { 101 //GridView控件的编辑行为鼠标获取到的编辑行 102 GridView1.EditIndex = e.NewEditIndex; 103 //重新绑定数据 104 Load(); 105 #region 处理血型 106 //在GridView控件中的编辑行找到DropDownList1控件将该控件的文本赋值为HiddenField1控件的value值 107 (GridView1.Rows[e.NewEditIndex].FindControl("DropDownList1") as DropDownList).Text = 108 (GridView1.Rows[e.NewEditIndex].FindControl("HiddenField1") as HiddenField).Value; 109 #endregion 110 111 #region 处理性别 112 //创建RadioButtonList变量等于GridView控件的编辑行的RadioButtonList1将该控件的选中值等于GridView1.DataKeys存放的性别值 113 RadioButtonList rblSex = (RadioButtonList)GridView1.Rows[e.NewEditIndex].FindControl("RadioButtonList1"); 114 rblSex.SelectedValue = GridView1.DataKeys[e.NewEditIndex].Value.ToString(); 115 #endregion 116 117 #region 处理星座 118 //创建DropDownList变量等于GridView控件中DropDownList2 119 DropDownList ddlstar = (DropDownList)GridView1.Rows[e.NewEditIndex].FindControl("DropDownList2"); 120 //给控件查询数据(查询全部星座) 121 ddlstar.DataSource = new StarInfoBLL().getStarInfoAll(); 122 //绑定的显示文本为StarName列 123 ddlstar.DataTextField = "StarName"; 124 //绑定的显示value值为Id列 125 ddlstar.DataValueField = "Id"; 126 //绑定数据 127 ddlstar.DataBind(); 128 //控件的选中值为GridView1.DataKeys中存放的星座ID 129 ddlstar.SelectedValue = GridView1.DataKeys[e.NewEditIndex].Values["StarID"].ToString(); 130 #endregion 131 132 #region 处理爱好 133 //创建CheckBoxList变量等于GridView中的CheckBoxList 134 CheckBoxList cbl = GridView1.Rows[e.NewEditIndex].FindControl("CheckBoxList1") as CheckBoxList; 135 136 #region 方法二 137 138 #endregion 139 140 #region 方法一 141 //创建字符串数组存放截取好的字符串(按逗号截取)爱好的多少种 142 string[] hobArr = ConfigurationManager.AppSettings["Hobby"].Split(','); 143 //创建字符串数组存放截取好的字符串(按逗号截取)用户的选中的爱好 144 string[] Hobbykeys = GridView1.DataKeys[e.NewEditIndex].Values["Hobby"].ToString().Split(','); 145 146 for (int i = 0; i < hobArr.Length; i++) 147 { 148 cbl.Items.Add(new ListItem(hobArr[i], i.ToString())); 149 //for (int j = 0; j < Hobbykeys.Length; j++) 150 //{ 151 // if (Hobbykeys[j] == i.ToString()) 152 // { 153 // cbl.Items[i].Selected = true; 154 // } 155 //} 156 } 157 for (int i = 0; i < Hobbykeys.Length; i++) 158 { 159 //循环爱好的多选框将用户选中的爱好在多选框中选中属性改为true 160 cbl.Items[Convert.ToInt32(Hobbykeys[i])].Selected = true; 161 } 162 #endregion 163 164 #endregion 165 166 } 167 168 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 169 { 170 //修改 171 string hob = "";//声明空字符串接受爱好 172 CheckBoxList cblhob = (GridView1.Rows[e.RowIndex].FindControl("CheckBoxList1") as CheckBoxList); 173 //创建用户的entity存储数据 174 UserInfoEntity entity = new UserInfoEntity(); 175 //在页面找当前的索引行中的Label10把它当成Label获取Text属性的值 176 entity.LoginId = (GridView1.Rows[e.RowIndex].FindControl("Label10") as Label).Text; 177 entity.LoginPwd = (GridView1.Rows[e.RowIndex].FindControl("TextBox1") as TextBox).Text; 178 entity.NickName = (GridView1.Rows[e.RowIndex].FindControl("TextBox2") as TextBox).Text; 179 entity.Sex = (GridView1.Rows[e.RowIndex].FindControl("RadioButtonList1") as RadioButtonList).SelectedValue; 180 entity.Brithday = Convert.ToDateTime((GridView1.Rows[e.RowIndex].FindControl("TextBox4") as TextBox).Text); 181 //for循环拼接爱好 182 for (int i = 0; i < cblhob.Items.Count; i++) 183 { 184 if (cblhob.Items[i].Selected) 185 { 186 hob += i + ","; 187 } 188 } 189 //字符串Substring方法截取字符串,去掉最后的逗号 190 entity.Hobby = hob.Substring(0, hob.Length - 1); 191 entity.Face = (GridView1.Rows[e.RowIndex].FindControl("TextBox6") as TextBox).Text; 192 entity.BloodType = (GridView1.Rows[e.RowIndex].FindControl("DropDownList1") as DropDownList).SelectedValue; 193 entity.StarID = Convert.ToInt32((GridView1.Rows[e.RowIndex].FindControl("DropDownList2") as DropDownList).SelectedValue); 194 entity.Email = (GridView1.Rows[e.RowIndex].FindControl("TextBox9") as TextBox).Text; 195 if (new UserInfoBLL().UpdateUserInfo(entity)) 196 { 197 GridView1.EditIndex = -1; 198 Load(); 199 Response.Write("<script>alert('保存成功')</script>"); 200 } 201 else 202 { 203 Response.Write("<script>alert('保存失败')</script>"); 204 } 205 } 206 207 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 208 { 209 //给GridView控件的编辑行索引赋值(一个不存在的行索引) 210 GridView1.EditIndex = -1; 211 //重新绑定数据 212 Load(); 213 } 214 215 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 216 { 217 #region 光棒效果方法二(方法一见页面jQuery代码) 218 if (e.Row.RowType == DataControlRowType.DataRow) 219 { 220 //给编辑行添加mouseover(鼠标进入)事件 221 e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='lightblue'"); 222 string color = ""; 223 //根据奇偶行来获取对应行的颜色代码(十六进制),然后截取后六位颜色代码 224 if (e.Row.RowIndex % 2 == 0) 225 { 226 color = GridView1.BackColor.ToArgb().ToString("X").Substring(2); 227 228 } 229 else 230 { 231 //Tostring("X")获取对应颜色代码的十六进制 232 color = GridView1.AlternatingRowStyle.BackColor.ToArgb().ToString("X").Substring(2); 233 } 234 //给编辑行添加mouseout(鼠标移出)事件 235 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#" + color + "'"); 236 } 237 #endregion 238 } 239 240 /// <summary> 241 /// 翻页功能 242 /// </summary> 243 /// <param name="sender"></param> 244 /// <param name="e"></param> 245 protected void LinkButton1_Click(object sender, EventArgs e) 246 { 247 //创建int值存放当前页数(用于后面计算) 248 int temp = Convert.ToInt32(ViewState["Index"]); 249 //判断点击的控件是否是DropDownList或者是IButtonControl(按钮控件) 250 if (sender is DropDownList) 251 { 252 DropDownList ddl = sender as DropDownList; 253 254 //ViewState["Index"] = ViewState["maxPage"] : ViewState["Index"] = ViewState["Index"]; 255 ViewState["Size"] = ddl.SelectedValue; 256 int MAX = DBHelper.GetDataTable("select * from UserInfo").Rows.Count; 257 int maxpage = (int)Math.Ceiling(MAX * 1.0 / Convert.ToInt32(ViewState["Size"])); 258 ViewState["maxPage"] = maxpage; 259 if ((int)ViewState["Index"] >= (int)ViewState["maxPage"] - 1) 260 { 261 ViewState["Index"] = ViewState["maxPage"]; 262 } 263 } 264 else 265 { 266 IButtonControl btn = sender as IButtonControl; 267 //获取按钮的CommandName值 268 switch (btn.CommandName) 269 { 270 case "First": 271 //翻到第一页 272 ViewState["Index"] = 1; 273 break; 274 case "Prev": 275 //上一页 276 //if (temp - 1 == 0) 277 //{ 278 // Response.Write("<script>alert('已经是第一页了')</script>"); 279 //} 280 //else 281 //{ 282 // ViewState["Index"] = temp - 1; 283 //} 284 //判断是否翻页(翻页的索引是否超出上下限) 285 ViewState["Index"] = temp - 1 <= 1 ? 1 : temp - 1; 286 break; 287 case "Next": 288 //下一页 289 //if (temp + 1 > (int)ViewState["maxPage"]) 290 //{ 291 // Response.Write("<script>alert('已经是最后一页了')</script>"); 292 //} 293 //else 294 //{ 295 // ViewState["Index"] = temp + 1; 296 //} 297 //判断是否翻页(翻页的索引是否超出上下限) 298 ViewState["Index"] = temp + 1 >= (int)ViewState["maxPage"] ? (int)ViewState["maxPage"] : temp + 1; 299 break; 300 case "Last": 301 //最后一页 302 //判断是否翻页(翻页的索引是否超出上下限) 303 ViewState["Index"] = ViewState["maxPage"]; 304 break; 305 case "GO": 306 //跳转到指定页面 307 ViewState["Index"] = Convert.ToInt32(TextBox3.Text) > (int)ViewState["maxPage"] ? (int)ViewState["maxPage"]: Convert.ToInt32(TextBox3.Text); 308 break; 309 default: 310 break; 311 } 312 } 313 //显示当前的页数 314 TextBox3.Text = ((int)ViewState["Index"]).ToString(); 315 //重新调Load方法刷新数据 316 Load(); 317 } 318 319 /// <summary> 320 /// 模糊查询 321 /// </summary> 322 /// <param name="sender"></param> 323 /// <param name="e"></param> 324 protected void btnSel_Click(object sender, EventArgs e) 325 { 326 string where = ""; 327 //判断模糊查询的文本框是否有值,如果有值就进行相应的字符串拼接 328 if (!string.IsNullOrWhiteSpace(txtLoginId.Text)) 329 { 330 where += " and LoginId like '%" + txtLoginId.Text + "%'"; 331 } 332 if (!string.IsNullOrWhiteSpace(txtNickName.Text)) 333 { 334 where += " and NickName like '%" + txtNickName.Text + "%'"; ; 335 } 336 //让ViewState["str"]等于where(SQL的模糊查询语句) 337 ViewState["str"] = where; 338 //回到第一页 339 ViewState["Index"] = 1; 340 Load(); 341 } 342 343 /// <summary> 344 /// 页面排序 345 /// </summary> 346 /// <param name="sender"></param> 347 /// <param name="e"></param> 348 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 349 { 350 //判断上一次点击的值是否等于当前点击的值 351 if (ViewState["SortExpression"].ToString() == e.SortExpression) 352 { 353 //如果两次值相等,判断ViewState["ascOrdesc"](判断排序是否为)Asc 354 //如果是就切换排序方式,如果不是,排序方式则为Asc 355 if (ViewState["ascOrdesc"].ToString() == "Asc") 356 { 357 ViewState["ascOrdesc"] = "Desc"; 358 } 359 else 360 { 361 ViewState["ascOrdesc"] = "Asc"; 362 } 363 }//如果两次点击的值不相等,就让ViewState["SortExpression"]存的值为当前点击的值 364 else 365 { 366 ViewState["SortExpression"] = e.SortExpression; 367 } 368 //拼接SQL模糊查询的语句 369 ViewState["ordebyStr"] = ViewState["SortExpression"] + " " + ViewState["ascOrdesc"]; 370 //Response.Write(ViewState["ordebyStr"]); 371 Load(); 372 } 373 374 /// <summary> 375 /// 批量删除 376 /// </summary> 377 /// <param name="sender"></param> 378 /// <param name="e"></param> 379 protected void Button5_Click(object sender, EventArgs e) 380 { 381 //声明空字符串存放LoginId 382 string delLoginId = ""; 383 //for循环在显示的数据行里找CheckBox被勾选的 384 for (int i = 0; i < GridView1.Rows.Count; i++) 385 { 386 CheckBox chk = GridView1.Rows[i].FindControl("CheckBox1") as CheckBox; 387 if (chk.Checked) 388 { 389 //如果CheckBox被选中就拼接LoginId 390 Label lblLoginId = GridView1.Rows[i].FindControl("Label10") as Label; 391 delLoginId += "'" + lblLoginId.Text + "',"; 392 } 393 } 394 //用Tostring方法截取字符串,去掉最后的逗号 395 delLoginId = delLoginId.Substring(0, delLoginId.Length - 1); 396 //调用批量删除的方法 397 new UserInfoBLL().delUserInfoList(delLoginId); 398 //重新绑定数据 399 Load(); 400 } 401 402 /// <summary> 403 /// 是否启用批量删除 404 /// </summary> 405 /// <param name="sender"></param> 406 /// <param name="e"></param> 407 protected void delChk_CheckedChanged(object sender, EventArgs e) 408 { 409 //让启用批量删除的按钮的可用状态 等于 是否启用批量删除的单选框的选中状态 410 btnDel.Enabled = delChk.Checked; 411 //数据行的单选显示状态为是否启用批量删除的单选框的选中状态 412 GridView1.Columns[0].Visible = delChk.Checked; 413 } 414 }