GridView控件綁定數據庫顯示數據


 

  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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM