zoukankan      html  css  js  c++  java
  • 利用三层架构实现数据的分页显示与页码点击跳转

    一、业务需求:

    利用三层架构实现对数据库数据的分页功能和点击每个页码实现不同分页面之间的跳转,效果如下图所示:

    二、三层结构代码详细示例

    1、表现层代码

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo3.aspx.cs" Inherits="Chapter05.Demo3" %>
     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     <%--引入css样式表--%>
    10     <link href="PageBar.css" rel="stylesheet" />
    11 </head>
    12 <body>
    13     <form id="form1" runat="server">
    14         <div>
    15             <table>
    16 
    17                 <asp:Repeater ID="Repeater1" runat="server">
    18                     <HeaderTemplate>
    19                         <tr>
    20                             <th>登录名</th>
    21                             <th>密码</th>
    22                             <th>是否激活</th>                           
    23                         </tr>
    24                     </HeaderTemplate>
    25                     <ItemTemplate>
    26                         <tr>
    27                             <td><%#Eval("LoginName") %></td>
    28                             <td><%#Eval("Pwd") %></td>
    29                             <td><%#Eval("IsEnabled") %></td>
    30                         </tr>
    31                     </ItemTemplate>
    32                 </asp:Repeater>
    33             </table>
    34         <%--    <a href="Demo3.aspx?pageIndex=1">1</a>
    35              <a  href="Demo3.aspx?pageIndex=2">2</a>
    36              <a>3</a>
    37             <a>4</a>
    38              <a>5</a>--%>
    39             <%--调用后台PageBar类中的代码--%>
    40             <%=PageBar %>
    41         </div>
    42     </form>
    43 </body>
    44 </html>
    View Code

    2、表现层后台代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 
     8 using Chapter05.BLL;
     9 using Chapter05.Models;
    10 using System.Text;
    11 
    12 namespace Chapter05
    13 {
    14     public partial class Demo3 : System.Web.UI.Page
    15     {
    16         //定义公共属性PageBar
    17         public string PageBar { get; set; }
    18         protected void Page_Load(object sender, EventArgs e)
    19         {
    20             if (!IsPostBack)
    21             {
    22                 //当前页
    23                 int pageIndex = 1;
    24                 //每页行数
    25                 int pageSize = 5;
    26                 //总页数
    27                 int pageCount = 0;
    28                 //总行数
    29                 int rowCount = 0;
    30                 //判断当前页是否为空
    31                 if (Request.QueryString["pageIndex"] != null)
    32                 {
    33 
    34                     pageIndex = Convert.ToInt32(Request.QueryString["pageIndex"].ToString());
    35                 }
    36 
    37                 LoginInfoBLL bll = new LoginInfoBLL();
    38                 List<LoginInfo> list = bll.GetPageData(pageIndex, pageSize, ref rowCount, ref pageCount);
    39                 //绑定数据源
    40                 this.Repeater1.DataSource = list;
    41                 this.Repeater1.DataBind();
    42                 //调用分页方法PageBar
    43                 this.PageBar = Chapter05.PageBar.CreatePageBar(pageIndex, pageCount);
    44             }
    45 
    46         }
    47 
    48         
    49 
    50     }
    51 }
    View Code

    3、逻辑判断层代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Data;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 using Chapter05.DAL;
     8 using Chapter05.Models;
     9 
    10 namespace Chapter05.BLL
    11 {
    12     public class LoginInfoBLL
    13     {
    14         public DataSet GetAll()
    15         {
    16             LoginInfoDAL dal = new LoginInfoDAL();
    17             return dal.GetAll();
    18         }
    19 
    20         public List<LoginInfo> GetAllList()
    21         {
    22             LoginInfoDAL dal = new LoginInfoDAL();
    23             return dal.GetAllList();
    24         }
    25 
    26         public bool DoDelete(string id)
    27         {
    28             LoginInfoDAL dal = new LoginInfoDAL();
    29             return dal.Delete(id) > 0;
    30         }
    31 
    32         public LoginInfo GetEntityById(string id)
    33         {
    34             return new LoginInfoDAL().GetEntityById(id);
    35         }
    36 
    37         public bool ModifyLoginInfo(LoginInfo info)
    38         {
    39             return new LoginInfoDAL().Update(info) > 0;
    40         }
    41         //存储过程分页
    42         public List<LoginInfo> GetPageData(int pageIndex, int pageSize, ref int rowCount, ref int pageCount) {
    43 
    44             return new LoginInfoDAL().GetPageData(pageIndex, pageSize, ref rowCount, ref pageCount);
    45         }
    46     }
    47 
    48 
    49 }
    View Code

    4、数据访问层代码

     ——LoginInfoDAL

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Data;
      4 using System.Linq;
      5 using System.Text;
      6 using System.Threading.Tasks;
      7 using Chapter05.Models;
      8 using System.Data.SqlClient;
      9 
     10 namespace Chapter05.DAL
     11 {
     12     public class LoginInfoDAL
     13     {
     14 
     15         #region 获取全部数据
     16 
     17         /// <summary>
     18         /// 
     19         /// </summary>
     20         /// <returns></returns>
     21         public DataSet GetAll()
     22         {
     23             //1.定义SQL
     24             string sql = "select * from LoginInfo";
     25             return SqlHelper.GetDataSet(sql, CommandType.Text);
     26         }
     27 
     28         public List<LoginInfo> GetAllList()
     29         {
     30             List<LoginInfo> result = new List<LoginInfo>();
     31             DataSet ds = new DataSet();
     32             ds = GetAll();
     33             if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
     34             {
     35                 foreach (DataRow dr in ds.Tables[0].Rows)
     36                 {
     37                     LoginInfo temp = DataRowToEntity(dr);
     38                     // 转换的结果 ,添加到 集合中
     39                     result.Add(temp);
     40                 }
     41             }
     42             else
     43             {
     44                 result = null;
     45             }
     46             return result;
     47         }
     48 
     49 
     50         #endregion
     51 
     52         #region 查询单个实体
     53 
     54         public LoginInfo GetEntityById(string id)
     55         {
     56             LoginInfo result = null;
     57             string sql = "select * from LoginInfo where id=@id";
     58             SqlParameter param = new SqlParameter("@id", SqlDbType.VarChar, 50);
     59             param.Value = id;
     60 
     61             DataSet ds = SqlHelper.GetDataSet(sql, CommandType.Text, param);
     62             if (ds.Tables[0].Rows.Count > 0)
     63             {
     64                 result = DataRowToEntity(ds.Tables[0].Rows[0]);
     65             }
     66             return result;
     67         }
     68 
     69         #endregion
     70 
     71         #region 分页数据
     72         //定义集合类型的方法,并传入参数,声明输出参数
     73         public List<LoginInfo> GetPageData(int pageIndex, int pageSize, ref int rowCount, ref int pageCount)
     74         {
     75             //定义数据对象集合
     76             List<LoginInfo> result = new List<LoginInfo>();
     77             //调用存储过程
     78             string sql = "PROC_PageData_LoginInfo";
     79 
     80             SqlParameter[] parameters = new SqlParameter[] { 
     81             new SqlParameter("@pageIndex",SqlDbType.Int),
     82             new SqlParameter("@pageSize",SqlDbType.Int),
     83             new SqlParameter("@rowCount",SqlDbType.Int),
     84             new SqlParameter("@pageCount",SqlDbType.Int)
     85             };
     86 
     87             parameters[0].Value = pageIndex;
     88             parameters[1].Value = pageSize;
     89             //声明参数类型:输出参数
     90             parameters[2].Direction = ParameterDirection.Output;
     91             parameters[3].Direction = ParameterDirection.Output;
     92             //调用sqlhelper方法,得到数据集合,命令类型为存储过程
     93             DataSet ds = SqlHelper.GetDataSet(sql, CommandType.StoredProcedure, parameters);
     94             //给输出参数赋值
     95             rowCount = Convert.ToInt32(parameters[2].Value);
     96             pageCount = Convert.ToInt32(parameters[3].Value);
     97             //判断数据集是否为空和数据集合第一张表中是否有数据
     98             if (ds != null && ds.Tables[0].Rows.Count > 0)
     99             {
    100                 //遍历第一张表中的每一行数据
    101                 foreach (DataRow dr in ds.Tables[0].Rows)
    102                 {
    103                     //实例化公共模型LoginInfo
    104                     LoginInfo temp = new LoginInfo();
    105                     //调用方法将每一行数据转换为对象,并赋值给temp对象
    106                     temp = DataRowToEntity(dr);
    107                     //将temp对象赋给对象集合result
    108                     result.Add(temp);
    109                 }
    110             }
    111             else
    112             {
    113                 result = null;
    114             }
    115             //返回对象集合
    116             return result;
    117         }
    118 
    119         #endregion
    120 
    121         #region 把数据行转化成  对象
    122 
    123         private LoginInfo DataRowToEntity(DataRow dr)
    124         {
    125             LoginInfo temp = new LoginInfo();
    126             temp.ID = dr["ID"].ToString();
    127             temp.LoginName = dr["LoginName"].ToString();
    128             temp.Pwd = dr["Pwd"].ToString();
    129             temp.IsEnabled = dr["IsEnabled"].ToString();
    130             temp.IsDelete = Convert.ToInt32(dr["IsDelete"]);
    131             return temp;
    132         }
    133 
    134         #endregion
    135 
    136         #region 根据主键删除数据
    137         public int Delete(string id)
    138         {
    139             string sql = "delete from LoginInfo  where id=@id";
    140 
    141             SqlParameter param = new SqlParameter("@id", SqlDbType.VarChar, 50);
    142             param.Value = id;
    143             return SqlHelper.ExecuteNonquery(sql, CommandType.Text, param);
    144 
    145         }
    146 
    147 
    148         #endregion
    149 
    150         #region 修改数据
    151 
    152         public int Update(LoginInfo loginInfo)
    153         {
    154             string sql = "update LoginInfo set LoginName=@loginName,Pwd=@pwd,IsDelete=@isDelete where Id=@id";
    155 
    156             SqlParameter[] paramters = new SqlParameter[] { 
    157                 new SqlParameter("@loginName",SqlDbType.VarChar,50),
    158                 new SqlParameter("@pwd",SqlDbType.VarChar,16),
    159                 new SqlParameter("@isDelete",SqlDbType.Int),
    160                 new SqlParameter("@id",SqlDbType.VarChar,50)
    161             };
    162 
    163             paramters[0].Value = loginInfo.LoginName;
    164             paramters[1].Value = loginInfo.Pwd;
    165             paramters[2].Value = loginInfo.IsDelete;
    166             paramters[3].Value = loginInfo.ID;
    167 
    168             return SqlHelper.ExecuteNonquery(sql, CommandType.Text, paramters);
    169         }
    170 
    171         #endregion
    172     }
    173 }
    View Code

     ——SQLHelper

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Configuration;
      4 using System.Data;
      5 using System.Data.SqlClient;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Threading.Tasks;
      9 
     10 namespace Chapter05.DAL
     11 {
     12     public class SqlHelper
     13     {
     14         /// <summary>
     15         /// 获取链接字符串
     16         /// </summary>
     17         private static readonly string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
     18 
     19         /// <summary>
     20         /// 执行查询操作 
     21         /// </summary>
     22         /// <param name="sql">SQL 语句</param>
     23         /// <param name="type">CommandType 命令的类型【text=>sql 脚本,StoredProcedure=>存储过程】</param>
     24         /// <param name="pars">参数</param>
     25         /// <returns>返回结果集 dataset</returns>
     26         public static DataSet GetDataSet(string sql, CommandType type, params SqlParameter[] pars)
     27         {
     28             //1.创建链接
     29             SqlConnection conn = new SqlConnection(connStr);
     30             //2.打开链接
     31             conn.Open();
     32             //3.创建命令对象
     33             SqlCommand cmd = new SqlCommand(sql, conn);
     34             //4.创建 适配器
     35             SqlDataAdapter da = new SqlDataAdapter(cmd);
     36             // 当传入的参数不为空时,直接添加到Cmd 对象的Parameters 属性上
     37             if (pars != null)
     38             {
     39                 foreach (var item in pars)
     40                 {
     41                     item.Value = item.Value == null ? DBNull.Value : item.Value;
     42                     cmd.Parameters.Add(item);
     43                 }
     44                 //cmd.Parameters.AddRange(pars);
     45             }
     46             //根据 使用者 传入的命令类型,给 Cmd 对象的CommandType 属性赋值;
     47             cmd.CommandType = type;
     48             DataSet ds = new DataSet();
     49             da.Fill(ds);
     50             //关闭链接
     51             conn.Close();
     52             return ds;
     53         }
     54 
     55 
     56         /// <summary>
     57         /// 执行SQL语句:返回 影响行数
     58         /// </summary>
     59         /// <param name="sql">SQL 语句</param>
     60         /// <param name="type">CommandType 命令的类型【text=>sql 脚本,StoredProcedure=>存储过程】</param>
     61         /// <param name="pars">参数</param>
     62         /// <returns></returns>
     63         public static int ExecuteNonquery(string sql, CommandType type, params SqlParameter[] pars)
     64         {
     65             using (SqlConnection conn = new SqlConnection(connStr))
     66             {
     67                 using (SqlCommand cmd = new SqlCommand(sql, conn))
     68                 {
     69                     if (pars != null)
     70                     {
     71                         foreach (var item in pars)
     72                         {
     73                             item.Value = item.Value == null ? DBNull.Value : item.Value;
     74                             cmd.Parameters.Add(item);
     75                         }
     76                         //cmd.Parameters.AddRange(pars);
     77 
     78                     }
     79                     cmd.CommandType = type;
     80                     conn.Open();
     81                     return cmd.ExecuteNonQuery();
     82                 }
     83             }
     84         }
     85 
     86         /// <summary>
     87         /// 执行查询,并返回查询所返回的结果集中第一行的第一列
     88         /// </summary>
     89         /// <param name="sql"></param>
     90         /// <param name="type"></param>
     91         /// <param name="pars"></param>
     92         /// <returns></returns>
     93         public static object ExecuteScalar(string sql, CommandType type, params SqlParameter[] pars)
     94         {
     95             using (SqlConnection conn = new SqlConnection(connStr))
     96             {
     97                 using (SqlCommand cmd = new SqlCommand(sql, conn))
     98                 {
     99                     if (pars != null)
    100                     {
    101                         //cmd.Parameters.AddRange(pars);
    102                         foreach (var item in pars)
    103                         {
    104                             item.Value = item.Value == null ? DBNull.Value : item.Value;
    105                             cmd.Parameters.Add(item);
    106                         }
    107                     }
    108                     cmd.CommandType = type;
    109                     conn.Open();
    110                     return cmd.ExecuteScalar();
    111                 }
    112             }
    113         }
    114     }
    115 }
    View Code

    5、封装的实体类--PageBar代码(实现点击数字切换分页页面)

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Web;
     6 
     7 namespace Chapter05
     8 {
     9     public class PageBar
    10     {
    11         /// <summary>
    12         /// 分页方法
    13         /// </summary>
    14         /// <param name="pageIndex"></param>
    15         /// <param name="pageCount"></param>
    16         /// <returns></returns>
    17         public static string CreatePageBar(int pageIndex, int pageCount)
    18         {
    19             //计算起始页码
    20             int startPage = pageIndex - 5 < 1 ? 1 : pageIndex - 5;
    21             // 计算结束页码
    22             int endPage = startPage + 9 > pageCount ? pageCount : startPage + 9;
    23 
    24             StringBuilder sb = new StringBuilder();
    25             // 设置Pagebar 的容器
    26             sb.Append("<div class='pager'>");
    27             // 判断当前页码是否是第一页
    28             if (pageIndex != 1)
    29             {
    30                 //首页
    31                 sb.AppendFormat("<a href='Demo3.aspx?pageIndex={0}'>{1}</a>", 1, "首页");
    32                 //上一页
    33                 sb.AppendFormat("<a href='Demo3.aspx?pageIndex={0}'>{1}</a>", pageIndex - 1, "上一页");
    34             }
    35             // 循环生成 页码标签
    36             for (int i = startPage; i <= endPage; i++)
    37             {
    38                 //判断 如果页码等于当前页, 设置Current 样式
    39                 if (i == pageIndex)
    40                 {
    41                     sb.AppendFormat("<a class='current' >{0}</a>", i);
    42                 }
    43                 else
    44                 {
    45                     sb.AppendFormat("<a href='Demo3.aspx?pageIndex={0}'>{0}</a>", i);
    46                 }
    47             }
    48             //判断 当前页,是否是 尾页
    49             if (pageIndex != endPage)
    50             {
    51                 // 下一页
    52                 sb.AppendFormat("<a href='Demo3.aspx?pageIndex={0}'>{1}</a>", pageIndex + 1, "下一页");
    53                 //尾页
    54                 sb.AppendFormat("<a href='Demo3.aspx?pageIndex={0}'>{1}</a>", pageCount, "尾页");
    55             }
    56             sb.Append("</div>");
    57             return sb.ToString();
    58         }
    59     }
    60 }
    View Code

    6、公共类--Model层代码

        ——封装公共属性

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace Chapter05.Models
     8 {
     9     public class LoginInfo
    10     {
    11         public string ID { get; set; }
    12         public string LoginName { get; set; }
    13         public string Pwd { get; set; }
    14         public string IsEnabled { get; set; }
    15         public int IsDelete { get; set; }
    16     }
    17 }

    7、页码条--PageBar的样式表中CSS样式代码

     1 /*PageBarCSS*/
     2 
     3 .pager {
     4     font-size: 12px;
     5     margin: 25px 0;
     6     text-align: center;
     7     color: #2e6ab1;
     8     line-height: 200%;
     9     overflow: hidden;
    10 }
    11 
    12     .pager a {
    13         border: 1px solid #9aafe5;
    14         color: #2e6ab1;
    15         margin: 0 2px;
    16         padding: 2px 5px;
    17         text-decoration: none;
    18     }
    19 
    20     .pager span.current {
    21         background-color: #2e6ab1;
    22         border: 1px solid navy;
    23         color: #fff;
    24         font-weight: bold;
    25         margin: 0 2px;
    26         padding: 2px 5px;
    27     }
    28 
    29     .pager a.current {
    30         background-color: #2e6ab1;
    31         border: 1px solid navy;
    32         color: #fff;
    33         font-weight: bold;
    34         margin: 0 2px;
    35         padding: 2px 5px;
    36     }
    View Code

    8、SQL数据库中的分页存储过程

     1 use empdb
     2 go
     3 create proc proc_pagedate_empinfor
     4 @pageIndex int,
     5 --声明为float类型的目的:使select @pageCount=CEILING(@rowCount/@pageSize)可以向上取整
     6 @pageSize float,
     7 @rowCount int out,
     8 @pageCount int out
     9 as
    10     begin
    11     select * from (select ROW_NUMBER() over (order by empId) as Num,* from empinfo) as temp 
    12     where Num>(@pageIndex-1)*@pageSize and Num<=@pageIndex*@pageSize
    13     select @rowCount=COUNT(1)  from empinfo
    14     select @pageCount=CEILING(@rowCount/@pageSize)
    15     end
    16 go
    17 declare @pageCount int,
    18         @rowCount int
    19 --1:@pageIndex;3:@pageSize
    20 exec proc_pagedate_empinfor 1,3,@rowCount out,@pageCount out
    21 select @rowCount as 总条数,@pageCount as 总页数
    View Code

    //=================================以下为Reprater控件应用代码示例======================================

    三、利用Reprater这个显示数据的控件绑定数据源

    1、主窗体表现层代码

               ——表现层代码

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo2.aspx.cs" Inherits="Chapter05.Demo2" %>
     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      
    10 </head>
    11 <body>
    12     <form id="form1" runat="server">
    13         <div>
    14             <table>
    15                 <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
    16 
    17                     <%-- 头部 【表头】 只执行一次 --%>
    18                     <HeaderTemplate>
    19                         <tr>
    20                             <th>登录名</th>
    21                             <th>登录密码</th>
    22                             <th>是否激活</th>
    23                             <th>是否删除</th>
    24                         </tr>
    25                     </HeaderTemplate>
    26                     <%-- 数据项模板 --%>
    27                     <ItemTemplate>
    28                         <tr>
    29                             <td><%#Eval("LoginName") %></td>
    30                             <td><%#Eval("Pwd") %></td>
    31                             <td><%#Eval("IsEnabled") %></td>
    32                             <td><%#Eval("IsDelete") %></td>
    33                             <td>
    34                                 <asp:Button ID="btnUpate" runat="server" Text="修改" CommandName="btnUpate" 
    35                                     CommandArgument='<%#Eval("ID") %>' /></td>
    36                             <td>
    37                                 <asp:Button ID="btnDelete" runat="server" Text="删除" CommandName="btnDelete" 
    38                                     CommandArgument='<%#Eval("ID") %>' /></td>
    39                         </tr>
    40                     </ItemTemplate>
    41                     <SeparatorTemplate>
    42                         <tr>
    43                             <td colspan="4">
    44                                 <hr />
    45                             </td>
    46                         </tr>
    47                     </SeparatorTemplate>
    48                     <%-- 交替项 模板 --%>
    49                     <AlternatingItemTemplate>
    50                         <tr style="background-color: red">
    51                             <td><%#Eval("LoginName") %></td>
    52                             <td><%#Eval("Pwd") %></td>
    53                             <td><%#Eval("IsEnabled") %></td>
    54                             <td><%#Eval("IsDelete") %></td>
    55                             <td>
    56                                 <asp:Button ID="btnUpate" runat="server" Text="修改" CommandName="btnUpate" CommandArgument='<%#Eval("ID") %>' />
    57 
    58                             </td>
    59                             <td>
    60                                 <asp:Button ID="btnDelete" runat="server" Text="删除"  CommandName="btnDelete"
    61                                     CommandArgument='<%#Eval("ID") %>' 
    62                                     />
    63 
    64                             </td>
    65                         </tr>
    66                     </AlternatingItemTemplate>
    67 
    68                     <%-- 尾部模板 只执行一次 --%>
    69                     <FooterTemplate>
    70                         <tr>
    71                             <td colspan="4">这是表尾</td>
    72                         </tr>
    73                     </FooterTemplate>
    74 
    75                 </asp:Repeater>
    76             </table>
    77         </div>
    78     </form>
    79 </body>
    80 </html>
    View Code

          ——表现层后台代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 using Chapter05.BLL;
     8 using System.Data;
     9 using Chapter05.Models;
    10 
    11 namespace Chapter05
    12 {
    13     public partial class Demo2 : System.Web.UI.Page
    14     {
    15         protected void Page_Load(object sender, EventArgs e)
    16         {
    17             if (!IsPostBack)
    18             {
    19                 //this.Repeater1.DataSource = "指定数据源【数据表或者是数据集合】";
    20                 //this.Repeater1.DataBind();//才是 绑定数据 到控件
    21                 DataSet ds = new DataSet();
    22                 ds = new LoginInfoBLL().GetAll();//获取 数据
    23 
    24                 //this.Repeater1.DataSource = ds.Tables[0];
    25                 //this.Repeater1.DataBind();//执行数据的绑定
    26                 List<LoginInfo> list = new LoginInfoBLL().GetAllList();
    27                 if (list != null)
    28                 {
    29                     this.Repeater1.DataSource = list;
    30                     this.Repeater1.DataBind();
    31                 }
    32             }
    33 
    34         }
    35 
    36         protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    37         {
    38             string cmd = e.CommandName;
    39             string id = e.CommandArgument.ToString();
    40             if (cmd == "btnUpate")
    41             {
    42                 //修改操作
    43                 Response.Redirect("ModifyLoginInfo.aspx?id=" + id);
    44             }
    45             else
    46             {
    47                 // 删除操作
    48                 LoginInfoBLL bll = new LoginInfoBLL();
    49                 bool boo = bll.DoDelete(id);
    50                 if (boo)
    51                 {
    52                     this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "alert('删除成功')", true);
    53                     //重新绑定 数据
    54 
    55                 }
    56                 else
    57                 {
    58                     this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "alert('删除失败')", true);
    59                 }
    60 
    61 
    62             }
    63         }
    64 
    65 
    66 
    67     }
    68 }
    View Code

    2、修改数据的窗体---表现层代码

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ModifyLoginInfo.aspx.cs" Inherits="Chapter05.ModifyLoginInfo" %>
     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 type="text/javascript">
    10       
    11     </script>
    12 </head>
    13 <body>
    14     <form id="form1" runat="server">
    15         <%--<input type="hidden" />--%>
    16         <asp:HiddenField ID="hidId" runat="server" />
    17         <div>
    18             <table>
    19                 <tr>
    20                     <td>
    21                         <asp:Label ID="Label1" runat="server" Text="登录名"></asp:Label></td>
    22                     <td>
    23                         <asp:TextBox ID="txtLoginName" runat="server"></asp:TextBox></td>
    24                 </tr>
    25                 <tr>
    26                     <td>
    27                         <asp:Label ID="Label2" runat="server" Text="密码"></asp:Label></td>
    28                     <td>
    29                         <asp:TextBox ID="txtPwd" runat="server"></asp:TextBox></td>
    30                 </tr>
    31                 <tr>
    32                     <td>
    33                         <asp:Label ID="Label3" runat="server" Text="是否删除"></asp:Label></td>
    34                     <td>
    35                         <asp:TextBox ID="txtIsDelete" runat="server"></asp:TextBox></td>
    36                 </tr>
    37                 <tr>
    38                     <td colspan="2">
    39                         <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" />
    40                 
    41                         </td>
    42                 </tr>
    43             </table>
    44         </div>
    45     </form>
    46 </body>
    47 </html>
    View Code

    3、修改数据的窗体---表现层后台代码

     1 using Chapter05.Models;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Web;
     6 using System.Web.UI;
     7 using System.Web.UI.WebControls;
     8 using Chapter05.BLL;
     9 
    10 
    11 namespace Chapter05
    12 {
    13     public partial class ModifyLoginInfo : System.Web.UI.Page
    14     {
    15         protected void Page_Load(object sender, EventArgs e)
    16         {
    17             if (!IsPostBack)
    18             {
    19                 string id = Request.QueryString["id"].ToString();
    20                 LoginInfo info = new LoginInfoBLL().GetEntityById(id);
    21                 if (info == null)
    22                 {
    23                     return;
    24                 }
    25 
    26                 this.txtLoginName.Text = info.LoginName;
    27                 this.txtPwd.Text = info.Pwd;
    28                 this.txtIsDelete.Text = info.IsDelete == 0 ? "正常" : "删除";
    29                 this.hidId.Value = info.ID;
    30 
    31             }
    32         }
    33 
    34         protected void btnSave_Click(object sender, EventArgs e)
    35         {
    36             LoginInfo temp = new LoginInfo();
    37             temp.ID = this.hidId.Value;
    38             temp.LoginName = this.txtLoginName.Text.Trim();
    39             temp.Pwd = this.txtPwd.Text.Trim();
    40             temp.IsDelete = this.txtIsDelete.Text.Trim() == "正常" ? 0 : 1;
    41 
    42             bool boo = new LoginInfoBLL().ModifyLoginInfo(temp);
    43             if (boo)
    44             {
    45                 //this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "alert('修改成功')",true);
    46               
    47                // Response.Flush();
    48               
    49                 Response.Write(@"<script>alert('修改成功');
    50                       window.open('Demo2.aspx');
    51                     </script>");
    52             }
    53             else {
    54                 this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "alert('修改失败')", true);
    55             }
    56         }
    57     }
    58 }
    View Code
  • 相关阅读:
    区分服务器和客户端,玩家的控制权
    分割字符串
    switch语句的使用
    博客暂停使用
    [题解]洛谷P1041 传染病控制
    [题解]洛谷P2668 斗地主
    [题解]洛谷P4017 最大食物链计数
    [题解]洛谷P1983 车站分级
    [OI学习笔记]倍增LCA
    [OI学习笔记]st表
  • 原文地址:https://www.cnblogs.com/pang951189/p/7598689.html
Copyright © 2011-2022 走看看