023-异步新闻分页增删改查

完成新闻分类表crud(page)

-》列表提示:$.parseJSON('')可以将字符串转成json对象
-》注意:使用$.getJSON()会有缓存,所以需要处理一下url,如加入随机数或时间

TypeList.html

 1 DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>title>
 6     <script src="js/jquery-1.7.1.min.js">script>
 7     <script>
 8         pCurrentIndex = 1;
 9         $(function () {
10             LoadList(1);
11         });
12 
13         function LoadList(pIndex) {
14             pCurrentIndex = pIndex;
15             $.getJSON(
16                 'TypeList.ashx',
17                 {
18                     pIndex: pIndex
19                 },
20                 function (data) {
21                     //{List:[{Id:,Title:}...],PageBar:...}
22                     var list = $('#list');
23                     list.empty();
24                     $.each(data.List, function (index, item) {
25                         list.append('' +
26                             '' + item.Id + '' +
27                             '' + item.Title + '' +
28                             '' + item.Id + '">修改' +
29                             '' + item.Id + ')">删除' +
30                             '');
31                     });
32                     list.append('' +
33                         '' + data.PageBar + '' +
34                         '');
35                     //执行以下代码时,可以获取超链接,进行分页改写
36                     $('.pagebar').each(function () {
37                         var pIndex1 = $(this).attr('href');
38                         $(this).attr('href', 'javascript:LoadList(' + pIndex1 + ')');
39                     });
40                 }
41             );
42         }
43 
44         function RemoveConfirm(id) {
45             if (confirm('确定要删除吗?')) {
46                 $.post(
47                     'TypeDelete.ashx',
48                     {
49                         id: id
50                     },
51                     function (msg) {
52                         if (msg == 1) {
53                             LoadList(pCurrentIndex);
54                         } else {
55                             alert('删除失败');
56                         }
57                     }
58                 );
59             }
60         }
61     script>
62 head>
63 <body>
64     <a href="TypeAdd.html">添加a>
65     <hr />
66     <table border="1">
67         <tr>
68             <th width="80">编号th>
69             <th width="100">标题th>
70             <th width="100">修改th>
71             <th width="100">删除th>
72         tr>
73         <tbody id="list">tbody>
74     table>
75 body>
76 html>

TypeList.ashx

  1     public class TypeList : IHttpHandler
  2     {
  3 
  4         public void ProcessRequest(HttpContext context)
  5         {
  6             context.Response.ContentType = "text/plain";
  7 
  8             #region 构造分页字符串
  9 
 10             int pageIndex = 1, pageSize = 2;
 11             if (!string.IsNullOrEmpty(context.Request["pIndex"]))
 12             {
 13                 pageIndex = int.Parse(context.Request["pIndex"]);
 14             }
 15             string pagerBar = GetPagerBar(ref pageIndex, pageSize);
 16             #endregion
 17 
 18             #region 得到当前页数据
 19             //构造目标集合
 20             List list = new List();
 21 
 22             //查询得到数据
 23             string sql = "select * from TypeInfoList where rowIndex between @rowStart and @rowEnd";
 24             SqlParameter[] ps =
 25             {
 26                 new SqlParameter("@rowStart",(pageIndex-1)*pageSize+1),
 27                 new SqlParameter("@rowEnd",pageIndex*pageSize)
 28             };
 29             DataTable dt = SqlHelper.GetList(sql, ps);
 30 
 31             //将数据存到目标集合
 32             foreach (DataRow row in dt.Rows)
 33             {
 34                 list.Add(new ListItem()
 35                 {
 36                     Id = Convert.ToInt32(row["TypeId"]),
 37                     Title = row["TypeTitle"].ToString()
 38                 });
 39             }
 40 
 41             #endregion
 42 
 43             //序列化
 44             //{List:[],PageBar:...}
 45             //匿名对象
 46             var result1 = new
 47             {
 48                 List = list,
 49                 PageBar = pagerBar
 50             };
 51 
 52             JavaScriptSerializer js = new JavaScriptSerializer();
 53             string result = js.Serialize(result1);
 54 
 55             context.Response.Write(result);
 56         }
 57 
 58         private string GetPagerBar(ref int pageIndex, int pageSize)
 59         {
 60             StringBuilder sb = new StringBuilder();
 61 
 62             if (pageIndex < 1)
 63             {
 64                 pageIndex = 1;
 65             }
 66 
 67             if (pageIndex == 1)
 68             {
 69                 sb.Append("首页 上一页 ");
 70             }
 71             else
 72             {
 73                 sb.Append("首页 ");
 74                 sb.Append("上一页 ");
 75             }
 76 
 77             string sql = "select count(*) from typeinfo";
 78             int rowsCount = Convert.ToInt32(SqlHelper.ExecuteScalar(sql));
 79             int pageCount = Convert.ToInt32(Math.Ceiling(rowsCount * 1.0 / pageSize));
 80 
 81             if (pageIndex > pageCount)
 82             {
 83                 pageIndex = pageCount;
 84             }
 85 
 86             if (pageIndex == pageCount)
 87             {
 88                 sb.Append("下一页 末页");
 89             }
 90             else
 91             {
 92                 sb.Append("下一页 ");
 93                 sb.Append("末页 ");
 94             }
 95             return sb.ToString();
 96         }
 97 
 98         public bool IsReusable
 99         {
100             get
101             {
102                 return false;
103             }
104         }
105     }
106 
107     public class ListItem
108     {
109         public int Id { get; set; }
110         public string Title { get; set; }
111     }

TypeAdd.html

 1 DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>title>
 6     <script src="js/jquery-1.7.1.min.js">script>
 7     <script>
 8         $(function () {
 9             $('#btnAdd').click(function () {
10                 $.post(
11                     'TypeAdd.ashx',
12                     $('#form1').serializeArray(),
13                     function (msg) {
14                         if (msg == 1) {
15                             location.href = 'TypeList.html';
16                         } else {
17                             alert('添加失败');
18                         }
19                     }
20                 );
21             });
22         });
23     script>
24 head>
25 <body>
26     <form id="form1">
27         标题:<input type="text" name="title" />
28         <br />
29         <input type="button" id="btnAdd" value="添加" />
30     form>
31 body>
32 html>

TypeAdd.ashx

 1     public class TypeAdd : IHttpHandler
 2     {
 3 
 4         public void ProcessRequest(HttpContext context)
 5         {
 6             context.Response.ContentType = "text/plain";
 7 
 8             string title = context.Request["title"];
 9 
10             string sql = "insert into typeinfo values(@title)";
11             SqlParameter p = new SqlParameter("@title", title);
12             int result = SqlHelper.ExecuteNonQuery(sql, p);
13 
14             context.Response.Write(result);
15         }
16 
17         public bool IsReusable
18         {
19             get
20             {
21                 return false;
22             }
23         }
24     }

TypeDelete.ashx

 1     public class TypeDelete : IHttpHandler
 2     {
 3 
 4         public void ProcessRequest(HttpContext context)
 5         {
 6             context.Response.ContentType = "text/plain";
 7 
 8             string id = context.Request["id"];
 9 
10             string sql = "delete from typeinfo where typeid=@id";
11             SqlParameter p = new SqlParameter("@id", id);
12             int result = SqlHelper.ExecuteNonQuery(sql, p);
13 
14             context.Response.Write(result);
15         }
16 
17         public bool IsReusable
18         {
19             get
20             {
21                 return false;
22             }
23         }
24     }

TypeEdit.aspx

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TypeEdit.aspx.cs" Inherits="t2_TypeInfo.TypeEdit" %>
 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.min.js">script>
10     <script>
11         $(function () {
12             $('#btnEdit').click(function () {
13                 $.post(
14                     'TypeEdit.aspx',
15                     $('#form1').serializeArray(),
16                     function (msg) {
17                         if (msg == 1) {
18                             location.href = "TypeList.html";
19                         } else {
20                             alert('修改失败');
21                         }
22                     }
23                 );
24             });
25         });
26     script>
27 head>
28 <body>
29     <form id="form1" runat="server">
30         编号:<%=Ti.TypeId %>
31         <input type="hidden" name="id" value="<%=Ti.TypeId %>" />
32         <br />
33         标题:<input type="text" name="title" value="<%=Ti.TypeTitle %>" />
34         <br />
35         <input type="button" id="btnEdit" value="修改" />
36     form>
37 body>
38 html>

TypeEdit.aspx.cs

 1     public partial class TypeEdit : System.Web.UI.Page
 2     {
 3         protected TypeInfo Ti { get; set; }
 4         protected void Page_Load(object sender, EventArgs e)
 5         {
 6             string id = Request["id"];
 7             string title = Request["title"];
 8 
 9             if (string.IsNullOrEmpty(title))
10             {
11                 //当没有请求标题时,说明要进行修改展示
12                 string sql = "select * from typeinfo where typeid=@id";
13                 SqlParameter p = new SqlParameter("@id", id);
14                 DataTable dt = SqlHelper.GetList(sql, p);
15                 DataRow row = dt.Rows[0];
16                 Ti = new TypeInfo()
17                 {
18                     TypeId = Convert.ToInt32(row["typeid"]),
19                     TypeTitle = row["typeTitle"].ToString()
20                 };
21             }
22             else
23             {
24                 Ti = new TypeInfo()
25                 {
26                     TypeId = 0,
27                     TypeTitle = "dlb"
28                 };
29                 //请求标题,说明要进行修改处理操作
30                 string sql = "update typeinfo set typetitle=@title where typeid=@id";
31                 SqlParameter[] ps =
32                 {
33                     new SqlParameter("@id", id),
34                     new SqlParameter("@title", title)
35                 };
36 
37                 int result = SqlHelper.ExecuteNonQuery(sql, ps);
38                 Context.Response.Write(result);
39                 Context.Response.End();//执行此方法,表示输出到此为止,之后的操作都不再执行
40             }
41         }
42     }

SqlHelper.cs

 1     public static class SqlHelper
 2     {
 3         private static string connStr =
 4             System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
 5 
 6         public static DataTable GetList(string sql, params SqlParameter[] ps)
 7         {
 8             using (SqlConnection conn = new SqlConnection(connStr))
 9             {
10                 SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
11                 sda.SelectCommand.Parameters.AddRange(ps);
12 
13                 DataTable dt = new DataTable();
14                 sda.Fill(dt);
15 
16                 return dt;
17             }
18         }
19 
20         public static int ExecuteNonQuery(string sql, params SqlParameter[] ps)
21         {
22             using (SqlConnection conn = new SqlConnection(connStr))
23             {
24                 SqlCommand cmd = new SqlCommand(sql, conn);
25                 cmd.Parameters.AddRange(ps);
26 
27                 conn.Open();
28                 return cmd.ExecuteNonQuery();
29             }
30         }
31 
32         public static object ExecuteScalar(string sql, params SqlParameter[] ps)
33         {
34             using (SqlConnection conn = new SqlConnection(connStr))
35             {
36                 SqlCommand cmd = new SqlCommand(sql, conn);
37                 cmd.Parameters.AddRange(ps);
38 
39                 conn.Open();
40                 return cmd.ExecuteScalar();
41             }
42         }
43 
44     }

TypeInfo.cs

1     public class TypeInfo
2     {
3         public int TypeId { get; set; }
4         public string TypeTitle { get; set; }
5     }

Web.config

 1 xml version="1.0" encoding="utf-8"?>
 2 
 3 
 7 
 8 <configuration>
 9   <system.web>
10     <compilation debug="true" targetFramework="4.5" />
11     <httpRuntime targetFramework="4.5" />
12   system.web>
13   <connectionStrings>
14     <add name="conn" connectionString="server=.;database=web1;uid=sa;pwd=123"/>
15   connectionStrings>
16 configuration>

 

转载于:https://www.cnblogs.com/ninghongkun/p/6353801.html

你可能感兴趣的:(023-异步新闻分页增删改查)