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 }

转载于:https://www.cnblogs.com/wdyy/p/10613581.html

GridView控件绑定数据库显示数据相关推荐

  1. Asp.net--DropDownList控件绑定数据库数据

    DropDownList控件绑定数据库数据:DB是公共类,reDt是公共类中的方法 放在Page_Load事件中 if (!IsPostBack){DB db = new DB();DataTable ...

  2. C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法

    1.C# ASP.NET  DROPDOWNLIST控件绑定数据库,数据库内容如下 数据库有3个字段:id,name,map. 数据库只有1个表,表名为  table1 2.前台代码如下: <a ...

  3. ASP GridView控件绑定数据进行数据的增删改查

    1.新建一个空项目,添加Web窗体FindUser,在前台设计中拖入GridView控件,在编辑列中设计BoundField,HeaderText属性设置表头文本,DataField属性设置为要显示的 ...

  4. C#操作GridView控件绑定数据实例详解(二)

    上文实现的GridView控件: (一)翻页功能 翻页内容,主要实现的是该控件下面,上下翻页,跳转到指定页面. 翻页功能要注意前台页面下面这段代码中的相关命令: <PagerTemplate & ...

  5. Winform开发之ComboBox和ComboBoxEdit控件绑定key/value数据

    使用 ComboBox 控件绑定key/value值: 因为 ComboBox 是有 DataSource 属性的,所以它可以直接绑定数据源,如 DataTable.ListItem 等. 使用 Da ...

  6. C#操作GridView控件绑定数据实例详解

    一.最简单的GridView数据绑定 二.实例详解功能丰富的GridView (1)绑定数据源(List<T>) (2)编辑:修改.更新.取消.删除 (3)搜索查询.翻页.行样式.数据绑定 ...

  7. vs2008 MFC使用DataGrid控件绑定数据库

    1.首先在对话框上点击右键,选择插入ActiveX控件,向下拖拉,找到MicrosoftDataGrid Control 6.0(SP6)(OLEDB),点击确定,在界面上会新增一个控件. 2.在界面 ...

  8. element-ui 使用table控件绑定的list数据的坑

    在table绑定list 数据之后,在属性中再次动态的添加成员属性的时候,就会无效. 比如table中绑定了list 中每一个成员的属性age,但是第一次绑定的时候没有age属性,后面获取age数据的 ...

  9. repeater用法一步一步详讲,用来绑定和显示数据信息

    估计要分两部: 一部分UI部分:在一个div里面可以写个repeater服务器控件,用来横排显示需要的数据:<asp:Repeater id="" runnat=" ...

最新文章

  1. Flask-login Question
  2. BZOJ2331:[SCOI2011]地板——题解
  3. leetcode2. 两数相加--每天刷一道leetcode系列!
  4. DPM2007轻松恢复Exchange邮件,DPM2007系列之三
  5. nginx 开启ssi
  6. List for game to play latter
  7. 怎样设置java home_如何在Windows 7上设置java_HOME?
  8. DCIM在数据中心现代化计划中的作用
  9. java 手势识别,AndroidStudio:手势识别
  10. kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中
  11. 【Java】猜数字小游戏
  12. qt android文件读写文件,qt android 开发之写入xml配置文件篇
  13. hz什么梗_hz是什么意思饭圈
  14. 《图形编程技术学习》(三十五)Phong明暗处理
  15. winform的RichTextBox设置网格线,类似word的稿纸效果
  16. eclipse常用快捷方式
  17. E4A第一期-E4A的简单用法
  18. 生物信息_odds_ratios、Likelihood_Ratios、发病率、frequency
  19. linux python 调试_Python安装与环境配置
  20. CocoaPods Trunk 发布

热门文章

  1. CTA策略你知道多少
  2. 阿里秋招提前开启!!!
  3. 小程序 canvans 互动白板应用
  4. 基于应力的拓扑优化的高效3D灵敏度分析代码(Matlab代码实现)
  5. 一款功能强大的课程报名系统 v6.2.0
  6. 对话王学宗:畅谈区块链如何赋能实体?
  7. U-Boot启动第二阶段代码分析
  8. 安装软件在远程服务器,如何使用命令行远程安装软件更新
  9. 转载:ZZW原创_rsync同步时由于注释问题引起的@ERROR: chdir failed
  10. 记一次交通事故代位赔偿