步步为营-78-新闻展示(Ajax+Json+easyUI)

Json:JavaScript Object Notation

1.1 Json对象的接收处理

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="JQuery/jquery-1.7.1.min.js"></script>
    <script>
        $(function () {
            //方法1
            $(‘#test1‘).click(function () {
                //$.post("01Json接收处理的4种方法.ashx", {}, function (data) { alert("阿斯蒂芬"); });
               $.post("01Json接收处理的4种方法.ashx", {}, function (data) { alert( data.name); },"json");
            });
            //方法2
            $(‘#test2‘).click(function () {
                $.post("01Json接收处理的4种方法.ashx", {}, function (data) {
                    var stJson = $.parseJSON(data);
                    alert(stJson.Age);
                });
            });
            //方法3
            $(‘#test3‘).click(function () {
                $.getJSON("01Json接收处理的4种方法.ashx", {}, function (data) {
                    alert(data.name);
                });
            });
            //方法4
            $(‘#test4‘).click(function () {

                $.ajax({
                    type: "post",
                    url: "01Json接收处理的4种方法.ashx",
                    data: {},
                    success: function (msg) {
                        alert(msg.Age);
                    },
                    dataType:"json",
                });
            });

        });
    </script>
</head>
<body>
    <input type="button" id="test1" value="姓名" />
    <input type="button" id="test2" value="年龄" />
    <input type="button" id="test3" value="姓名" />
    <input type="button" id="test4" value="年龄"/>
</body>
</html>

html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace JsonTest
{
    /// <summary>
    /// _01Json接收处理的4种方法 的摘要说明
    /// </summary>
    public class _01Json接收处理的4种方法 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            string strJson=@"{""name"":""张三"",""Age"":""18""}";
            context.Response.Write(strJson);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ashx

2.1 列表展示:主要是后台获取数据=>传递给前台转成json对象=>拼接成HTML代码附加到table表中

  需要注意两点:

   //1 专门实现序列化和和反序列化,很方便
           System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
           string str = js.Serialize(newsList);

    //2 将序列化成json格式后日期(毫秒数)转成日期格式

function ChangeDateFormat(cellval) {

var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));

var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;

var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();

return date.getFullYear() + "-" + month + "-" + currentDate;

}

using NewsBLL;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace JsonTest
{
    /// <summary>
    /// _02_01新闻展示 的摘要说明
    /// </summary>
    public class _02_01新闻展示 : IHttpHandler
    {
        //创建Bll层对象
        NewsInfoBll bll = new NewsInfoBll();
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
           List<NewsInfoModel> newsList = bll.GetNewsInfo();
            //很重要的一行代码
          JavaScriptSerializer js = new  JavaScriptSerializer();
           string str = js.Serialize(newsList);
           context.Response.Write(str);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ashx.cs

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="JQuery/jquery-1.7.1.min.js"></script>
    <script>
        $(function () {
            pageLoad();
        });

        function pageLoad() {
            $.post("02-01新闻展示.ashx", {},
                function (data) {
                    var stJson = $.parseJSON(data);//其结果为Json数组
                    //获取后台发来的Json对象
                    var len = stJson.length;
                    if (len > 0) {
                        for (var i = 0; i < len; i++) {
                            $("<tr><td>" + stJson[i].NewsId + "</td><td>" + stJson[i].NewsTitle + "</td><td>" + stJson[i].NewsContent + "</td><td>" +ChangeDateFormat( stJson[i].SubTime )+ "</td></tr>").appendTo("#tableList");
                        }
                    } else {
                        $("<tr><td>没有数据</td></tr>").appendTo("#tableList");
                    }

                });
            //将序列化成json格式后日期(毫秒数)转成日期格式
            function ChangeDateFormat(cellval) {
                var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
                var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                return date.getFullYear() + "-" + month + "-" + currentDate;
            }

        }

    </script>
</head>
<body>

    <table id="tableList">
        <thead>
        <th>新闻Id</th>        <th>新闻标题</th>        <th>新闻内容</th>        <th>发布时间</th>
        </thead>
    </table>
</body>
</html>

新闻展示.html

运行效果

2.2 详细信息:设置隐藏的dialog对话框=>为信息添加链接=>显示对话框和并附上相应的值

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="Css/tableStyle.css" rel="stylesheet" />
    <link href="Css/themes/default/easyui.css" rel="stylesheet" />
    <link href="Css/themes/icon.css" rel="stylesheet" />

    <script src="JQuery/jquery-1.7.1.js"></script>
    <script src="JQuery/jquery.easyui.min.js"></script>
    <script src="JQuery/easyui-lang-zh_CN.js"></script>

    <script>
        $(function () {
            //01 页面加载
            pageLoad();
            // 将详细信息div隐藏
            $("#detailDiv").css("display", "none");
        });
        //01 页面加载
        function pageLoad() {
            $.post("02-01新闻展示.ashx", {},
                function (data) {
                    var stJson = $.parseJSON(data);//其结果为Json数组
                    //获取后台发来的Json对象
                    var len = stJson.length;
                    if (len > 0) {
                        for (var i = 0; i < len; i++) {
                            $("<tr><td>" + stJson[i].NewsId + "</td><td>" + stJson[i].NewsTitle + "</td><td>" + stJson[i].NewsContent + "</td><td>" +ChangeDateFormat( stJson[i].SubTime )+ "</td> <td><a href=‘javascript:void(0)‘ class=‘deletes‘ dId=‘"+stJson[i].NewsId+"‘>删除</a></td> <td><a href=‘javascript:void(0)‘ class=‘details‘ nId=‘"+stJson[i].NewsId+"‘>详细</a></td>  <td><a href=‘javascript:void(0)‘ class=‘edits‘ eId=‘"+stJson[i].NewsId+"‘>编辑</a></td> </tr>").appendTo("#tableList");
                            //03 详细信息
                            bindDetailClick();
                        }
                    } else {
                        $("<tr><td>没有数据</td></tr>").appendTo("#tableList");
                    }
                });     

        }
        //02 将序列化成json格式后日期(毫秒数)转成日期格式
        function ChangeDateFormat(cellval) {
            var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
            return date.getFullYear() + "-" + month + "-" + currentDate;
        }
        //03 详细信息
        function bindDetailClick() {
            //03-01 添加单击事件
            $(".details").click(function () {
                var id = $(this).attr("nId");
                $.post("02-02新闻详细.ashx", { "id": id }, function (data) {
                    var strJson = $.parseJSON(data);
                    //为文本框赋值
                    $("#NewId").text(strJson[0].NewsId);
                    $("#SubBy").text(strJson[0].SubBy);
                    $("#TypeId").text(strJson[0].TypeId);
                    //显示div
                    $("#detailDiv").css("display", "block");
                    //以对话框的形式弹出
                    $(‘#detailDiv‘).dialog({
                        width: 300,
                        height: 300,
                        title: "用户详细信息",
                        collapsible: true,
                        maximizable: true,
                        resizable: true,
                        modal: true,
                        buttons: [{
                            text: ‘Ok‘,
                            iconCls: ‘icon-ok‘,
                            handler: function () {
                                alert(‘ok‘);
                            }
                        }, {
                            text: ‘Cancel‘,
                            handler: function () {
                                $(‘#detailDiv‘).dialog(‘close‘);
                            }
                        }]
                    });
                });
            });
        }

    </script>
</head>
<body>

    <table id="tableList">
        <thead>
        <th>新闻Id</th>   <th>新闻标题</th>   <th>新闻内容</th>   <th>发布时间</th> <th>删除</th>   <th>详细</th>  <th>编辑</th>
        </thead>
    </table>

    <!------------03详细信息------------------>
    <div id="detailDiv">
        <table>
            <tr>
                <td>新闻Id</td>
                <td><span id="NewId"></span></td>
            </tr>
            <tr>
                <td>上传者</td>
                <td><span id="SubBy"></span></td>
            </tr>
            <tr>
                <td>所属类型</td>
                <td><span id="TypeId"></span></td>
            </tr>
        </table>
    </div>
    <!------------详细信息------------------>

</body>
</html>

HTML---03

using NewsBLL;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace JsonTest
{
    /// <summary>
    /// _02_02新闻详细 的摘要说明
    /// </summary>
    public class _02_02新闻详细 : IHttpHandler
    {
        //创建Bll层对象
        NewsInfoBll bll = new NewsInfoBll();
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            //01 获取新闻id
            if (context.Request["id"] != null)
            {
                int newsId = Convert.ToInt32(context.Request["id"]);
                List<NewsInfoModel> newsList = bll.GetNewsInfo(newsId);
                JavaScriptSerializer jss = new JavaScriptSerializer();
                string str = jss.Serialize(newsList);
                context.Response.Write(str);
            }

        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

ashx

2.3 删除 对应04

2.4 添加 对应05

2.5 编辑 对应06

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="Css/tableStyle.css" rel="stylesheet" />
    <link href="Css/themes/default/easyui.css" rel="stylesheet" />
    <link href="Css/themes/icon.css" rel="stylesheet" />

    <script src="JQuery/jquery-1.7.1.js"></script>
    <script src="JQuery/jquery.easyui.min.js"></script>
    <script src="JQuery/easyui-lang-zh_CN.js"></script>

    <script>
        $(function () {
            //01 页面加载
            pageLoad();
            // 03将详细信息div隐藏
            $("#detailDiv").css("display", "none");
            //05将添加新闻div隐藏
            $("#addDiv").css("display", "none");
            //06将编辑新闻div隐藏
            $("#editDiv").css("display", "none");

        });
        //01 页面加载
        function pageLoad() {
            $.post("02-01新闻展示.ashx", {},
                function (data) {
                    var stJson = $.parseJSON(data);//其结果为Json数组
                    //获取后台发来的Json对象
                    var len = stJson.length;
                    if (len > 0) {
                        for (var i = 0; i < len; i++) {
                            $("<tr><td>" + stJson[i].NewsId + "</td><td>" + stJson[i].NewsTitle + "</td><td>" + stJson[i].NewsContent + "</td><td>" +ChangeDateFormat( stJson[i].SubTime )+ "</td> <td><a href=‘javascript:void(0)‘ class=‘deletes‘ dId=‘"+stJson[i].NewsId+"‘>删除</a></td> <td><a href=‘javascript:void(0)‘ class=‘details‘ nId=‘"+stJson[i].NewsId+"‘>详细</a></td>  <td><a href=‘javascript:void(0)‘ class=‘edits‘ eId=‘"+stJson[i].NewsId+"‘>编辑</a></td> </tr>").appendTo("#tableList");
                            //03 详细信息
                            bindDetailClick();
                            //04 删除信息
                            bindDeleteClick();
                            //06 编辑信息
                            bindEditClick();
                        }
                    } else {
                        $("<tr><td>没有数据</td></tr>").appendTo("#tableList");
                    }
                });     

        }
        //02 将序列化成json格式后日期(毫秒数)转成日期格式
        function ChangeDateFormat(cellval) {
            var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
            return date.getFullYear() + "-" + month + "-" + currentDate;
        }
        //03 详细信息
        function bindDetailClick() {
            //03-01 添加单击事件
            $(".details").click(function () {
                var id = $(this).attr("nId");
                $.post("02-02新闻详细.ashx", { "id": id }, function (data) {
                    var strJson = $.parseJSON(data);
                    //为文本框赋值
                    $("#NewId").text(strJson[0].NewsId);
                    $("#SubBy").text(strJson[0].SubBy);
                    $("#TypeId").text(strJson[0].TypeId);
                    //显示div
                    $("#detailDiv").css("display", "block");
                    //以对话框的形式弹出
                    $(‘#detailDiv‘).dialog({
                        width: 300,
                        height: 300,
                        title: "新闻详细信息",
                        collapsible: true,
                        maximizable: true,
                        resizable: true,
                        modal: true,
                        buttons: [{
                            text: ‘Ok‘,
                            iconCls: ‘icon-ok‘,
                            handler: function () {
                                alert(‘ok‘);
                            }
                        }, {
                            text: ‘Cancel‘,
                            handler: function () {
                                $(‘#detailDiv‘).dialog(‘close‘);
                            }
                        }]
                    });
                });
            });
        }
        //04 删除信息
        function bindDeleteClick() {
            $(".deletes").click(function () {
                var id = $(this).attr("dId");
                $.messager.confirm("删除提示", "确认删除选中记录吗?", function (r) {
                    if (r) {
                        $.post("02-03新闻删除.ashx", { "id": id }, function (data) {
                            if (data == "ok") {
                                //清空原有数据
                                $("#tableList tr:gt(0)").remove();
                                //重新加载
                                pageLoad();
                                $.messager.show({
                                    title: "提示",
                                    msg: "删除成功!",
                                    showType:"show"
                                });
                            } else {
                                $.messager.alert("提示","删除失败","error");
                            }
                        });
                    }
                });
            });
        }
        //05 添加新闻
        function bindAddClick() {
            //05-01 显示div
            $("#addDiv").css("display", "block");
            //05-02 以对话框形式弹出
            $(‘#addDiv‘).dialog({
                width: 300,
                height: 300,
                title: "添加新闻信息",
                collapsible: true,
                maximizable: true,
                resizable: true,
                modal: true,
                buttons: [{
                    text: ‘添加‘,
                    iconCls: ‘icon-ok‘,
                    handler: function () {
                        $.post("02-04新闻添加.ashx", { "title": $("#AddNewsTitle").val(), "content": $("#AddNewsContent").val() },
                            function (data) {
                                if (data == "ok") {
                                    //清空原有数据
                                    $("#tableList tr:gt(0)").remove();
                                    //重新加载
                                    pageLoad();
                                    $.messager.show({
                                        title: "提示",
                                        msg: "添加成功!",
                                        showType: "show"
                                    });
                                    //关闭对话框
                                    $(‘#addDiv‘).dialog(‘close‘);
                                } else {
                                    $.messager.alert("提示", "添加失败", "error");
                                }
                            });
                    }
                }, {
                    text: ‘Cancel‘,
                    handler: function () {
                        $(‘#detailDiv‘).dialog(‘close‘);
                    }
                }]
            });

        }
        //06 编辑信息
        function bindEditClick() {
            //06-01 添加单击事件
            $(".edits").click(function () {
                var id = $(this).attr("eId");
                $.post("02-02新闻详细.ashx", { "id": id }, function (data) {
                    var strJson = $.parseJSON(data);
                    //为文本框赋值
                    $("#editNewsId").val(strJson[0].NewsId);
                    $("#eidtNewsTitle").val(strJson[0].NewsTitle);
                    $("#editNewsContent").val(strJson[0].NewsContent);
                    $("#editTypeId").val(strJson[0].TypeId);
                    //显示div
                    $("#editDiv").css("display", "block");
                    //以对话框的形式弹出
                    $(‘#editDiv‘).dialog({
                        width: 300,
                        height: 300,
                        title: "新闻详细信息",
                        collapsible: true,
                        maximizable: true,
                        resizable: true,
                        modal: true,
                        buttons: [{
                            text: ‘Ok‘,
                            iconCls: ‘icon-ok‘,
                            handler: function () {
                                //完成数据更新
                                editNewsInfo();
                            }
                        }, {
                            text: ‘Cancel‘,
                            handler: function () {
                                $(‘#detailDiv‘).dialog(‘close‘);
                            }
                        }]
                    });
                });
            });
        }
        //06-02 完成数据的更新
        function editNewsInfo() {
            //01 获取表单中的数据,并将其序列化
            var pars = $("#editForm").serializeArray();
            $.post("02-05新闻编辑.ashx", pars, function (data) {
                if (data == "ok") {
                    //清空原有数据
                    $("#tableList tr:gt(0)").remove();
                    //重新加载
                    pageLoad();
                    $.messager.show({
                        title: "提示",
                        msg: "修改成功!",
                        showType: "show"
                    });
                    //关闭对话框
                    $(‘#editDiv‘).dialog(‘close‘);
                } else {
                    $.messager.alert("提示", "修改失败", "error");
                }
            });
        }

    </script>
</head>
<body>
     <input type="button" id="btnAddNewsInfo"  value="添加新闻" onclick="bindAddClick()"/>
    <table id="tableList">
        <thead>
        <th>新闻Id</th>   <th>新闻标题</th>   <th>新闻内容</th>   <th>发布时间</th> <th>删除</th>   <th>详细</th>  <th>编辑</th>
        </thead>
    </table>

    <!------------03详细信息-Start----------------->
    <div id="detailDiv">
        <table>
            <tr>
                <td>新闻Id</td>
                <td><span id="NewId"></span></td>
            </tr>
            <tr>
                <td>上传者</td>
                <td><span id="SubBy"></span></td>
            </tr>
            <tr>
                <td>所属类型</td>
                <td><span id="TypeId"></span></td>
            </tr>
        </table>
    </div>
    <!------------03详细信息-End----------------->
    <!------------04删除信息-start---End----------------->

    <!------------05添加信息-Start----------------->
    <div id="addDiv">
        <table>
            <tr>
                <td>新闻标题</td>
                <td><input type="text" id="AddNewsTitle" /> </td>
            </tr>
            <tr>
                <td>新闻内容</td>
                <td><input type="text" id="AddNewsContent" /> </td>
            </tr>

        </table>
    </div>
    <!------------05添加信息-End----------------->
    <!------------06编辑信息-Start----------------->
    <div id="editDiv">
        <form id="editForm">
            <input type="hidden" name="txtEditNewsId" id="editNewsId" />
            <table>
                <tr><td>新闻标题</td><td><input type="text" name="txtEditNewsTitle" id="eidtNewsTitle" /></td></tr>
                <tr><td>新闻内容</td><td><input type="text" name="txtEditNewsContent" id="editNewsContent" /></td></tr>
                <tr><td>新闻类型</td><td><input type="text" name="txtEditTypeId" id="editTypeId" /></td></tr>
            </table>
        </form>
    </div>
    <!------------06编辑信息-End----------------->

</body>
</html>

2.6 分页
2.6.1 先改后台代码

using NewsBLL;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace JsonTest
{
    /// <summary>
    /// _02_01新闻展示 的摘要说明
    /// </summary>
    public class _02_01新闻展示 : IHttpHandler
    {
        //创建Bll层对象
        NewsInfoBll bll = new NewsInfoBll();
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
           List<NewsInfoModel> newsList = bll.GetNewsInfo();
            //很重要的一行代码
          JavaScriptSerializer js = new  JavaScriptSerializer();
           string str = js.Serialize(newsList);
           context.Response.Write(str);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

修改前

using NewsBLL;
using NewsCommon;
using NewsModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace JsonTest
{
    /// <summary>
    /// _02_01新闻展示 的摘要说明
    /// </summary>
    public class _02_01新闻展示 : IHttpHandler
    {
        //创建Bll层对象
        NewsInfoBll bll = new NewsInfoBll();
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            //01 设置每一页显示条数
            int pageSize = 2;
            //02 设置当前页数
            int pageIndex;
            if (!int.TryParse(context.Request["pageIndex"], out pageIndex))
            {
                pageIndex = 1;
            }
            //03 获取总的页数
            int pageCount = bll.GetNewsInfoPageCount(pageSize);
            //04 判断当前页数和总页数的关系
            pageIndex = pageIndex < 1 ? 1 : pageIndex;
            pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
            //05获取显示数据
            List<NewsInfoModel> newsInfoList = bll.GetNewsInfoPage(pageIndex, pageSize);
            //06 获取页码条
            string pageBarStr = PageBarHelper.GetPageBar(pageIndex, pageCount, 5);
            //很重要的一行代码
          JavaScriptSerializer js = new  JavaScriptSerializer();
            //07
          string str = js.Serialize(new { UList = newsInfoList, pageStr = pageBarStr });
           context.Response.Write(str);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

修改后

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>

    <link href="http://localhost:60660/style/style.css" rel="stylesheet" />

    <link href="Css/tableStyle.css" rel="stylesheet" />
    <link href="Css/themes/default/easyui.css" rel="stylesheet" />
    <link href="Css/themes/icon.css" rel="stylesheet" />

    <link href="http://localhost:60660/style/PageBarStyle.css" rel="stylesheet" />

    <script src="JQuery/jquery-1.7.1.js"></script>
    <script src="JQuery/jquery.easyui.min.js"></script>
    <script src="JQuery/easyui-lang-zh_CN.js"></script>

    <script>
        $(function () {
            //01 页面加载
            pageLoad(1);
            // 03将详细信息div隐藏
            $("#detailDiv").css("display", "none");
            //05将添加新闻div隐藏
            $("#addDiv").css("display", "none");
            //06将编辑新闻div隐藏
            $("#editDiv").css("display", "none");

        });
        //01 页面加载
        function pageLoad(pageIndex) {
            $.post("02-01新闻展示.ashx", {"pageIndex":pageIndex},
                function (data) {
                    var stJson = $.parseJSON(data);//其结果为Json数组
                    //获取后台发来的Json对象
                    var len = stJson.UList.length;
                    if (len > 0) {
                        for (var i = 0; i < len; i++) {
                            $("<tr><td>" + stJson.UList[i].NewsId + "</td><td>" + stJson.UList[i].NewsTitle + "</td><td>" + stJson.UList[i].NewsContent + "</td><td>" + ChangeDateFormat(stJson.UList[i].SubTime) + "</td> <td><a href=‘javascript:void(0)‘ class=‘deletes‘ dId=‘" + stJson.UList[i].NewsId + "‘>删除</a></td> <td><a href=‘javascript:void(0)‘ class=‘details‘ nId=‘" + stJson.UList[i].NewsId + "‘>详细</a></td>  <td><a href=‘javascript:void(0)‘ class=‘edits‘ eId=‘" + stJson.UList[i].NewsId + "‘>编辑</a></td> </tr>").appendTo("#tableList");

                            //07显示页码条
                            $("#pageBarDiv").html(stJson.pageStr);
                            //08 为页码条添加click事件
                            bindPageBarClick();
                            //03 详细信息
                            bindDetailClick();
                            //04 删除信息
                            bindDeleteClick();
                            //06 编辑信息
                            bindEditClick();
                        }
                    } else {
                        $("<tr><td>没有数据</td></tr>").appendTo("#tableList");
                    }
                });     

        }
        //02 将序列化成json格式后日期(毫秒数)转成日期格式
        function ChangeDateFormat(cellval) {
            var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
            return date.getFullYear() + "-" + month + "-" + currentDate;
        }
        //03 详细信息
        function bindDetailClick() {
            //03-01 添加单击事件
            $(".details").click(function () {
                var id = $(this).attr("nId");
                $.post("02-02新闻详细.ashx", { "id": id }, function (data) {
                    var strJson = $.parseJSON(data);
                    //为文本框赋值
                    $("#NewId").text(strJson[0].NewsId);
                    $("#SubBy").text(strJson[0].SubBy);
                    $("#TypeId").text(strJson[0].TypeId);
                    //显示div
                    $("#detailDiv").css("display", "block");
                    //以对话框的形式弹出
                    $(‘#detailDiv‘).dialog({
                        width: 300,
                        height: 300,
                        title: "新闻详细信息",
                        collapsible: true,
                        maximizable: true,
                        resizable: true,
                        modal: true,
                        buttons: [{
                            text: ‘Ok‘,
                            iconCls: ‘icon-ok‘,
                            handler: function () {
                                alert(‘ok‘);
                            }
                        }, {
                            text: ‘Cancel‘,
                            handler: function () {
                                $(‘#detailDiv‘).dialog(‘close‘);
                            }
                        }]
                    });
                });
            });
        }
        //04 删除信息
        function bindDeleteClick() {
            $(".deletes").click(function () {
                var id = $(this).attr("dId");
                $.messager.confirm("删除提示", "确认删除选中记录吗?", function (r) {
                    if (r) {
                        $.post("02-03新闻删除.ashx", { "id": id }, function (data) {
                            if (data == "ok") {
                                //清空原有数据
                                $("#tableList tr:gt(0)").remove();
                                //重新加载
                                pageLoad();
                                $.messager.show({
                                    title: "提示",
                                    msg: "删除成功!",
                                    showType:"show"
                                });
                            } else {
                                $.messager.alert("提示","删除失败","error");
                            }
                        });
                    }
                });
            });
        }
        //05 添加新闻
        function bindAddClick() {
            //05-01 显示div
            $("#addDiv").css("display", "block");
            //05-02 以对话框形式弹出
            $(‘#addDiv‘).dialog({
                width: 300,
                height: 300,
                title: "添加新闻信息",
                collapsible: true,
                maximizable: true,
                resizable: true,
                modal: true,
                buttons: [{
                    text: ‘添加‘,
                    iconCls: ‘icon-ok‘,
                    handler: function () {
                        $.post("02-04新闻添加.ashx", { "title": $("#AddNewsTitle").val(), "content": $("#AddNewsContent").val() },
                            function (data) {
                                if (data == "ok") {
                                    //清空原有数据
                                    $("#tableList tr:gt(0)").remove();
                                    //重新加载
                                    pageLoad();
                                    $.messager.show({
                                        title: "提示",
                                        msg: "添加成功!",
                                        showType: "show"
                                    });
                                    //关闭对话框
                                    $(‘#addDiv‘).dialog(‘close‘);
                                } else {
                                    $.messager.alert("提示", "添加失败", "error");
                                }
                            });
                    }
                }, {
                    text: ‘Cancel‘,
                    handler: function () {
                        $(‘#detailDiv‘).dialog(‘close‘);
                    }
                }]
            });

        }
        //06 编辑信息
        function bindEditClick() {
            //06-01 添加单击事件
            $(".edits").click(function () {
                var id = $(this).attr("eId");
                $.post("02-02新闻详细.ashx", { "id": id }, function (data) {
                    var strJson = $.parseJSON(data);
                    //为文本框赋值
                    $("#editNewsId").val(strJson[0].NewsId);
                    $("#eidtNewsTitle").val(strJson[0].NewsTitle);
                    $("#editNewsContent").val(strJson[0].NewsContent);
                    $("#editTypeId").val(strJson[0].TypeId);
                    //显示div
                    $("#editDiv").css("display", "block");
                    //以对话框的形式弹出
                    $(‘#editDiv‘).dialog({
                        width: 300,
                        height: 300,
                        title: "新闻详细信息",
                        collapsible: true,
                        maximizable: true,
                        resizable: true,
                        modal: true,
                        buttons: [{
                            text: ‘Ok‘,
                            iconCls: ‘icon-ok‘,
                            handler: function () {
                                //完成数据更新
                                editNewsInfo();
                            }
                        }, {
                            text: ‘Cancel‘,
                            handler: function () {
                                $(‘#detailDiv‘).dialog(‘close‘);
                            }
                        }]
                    });
                });
            });
        }
        //06-02 完成数据的更新
        function editNewsInfo() {
            //01 获取表单中的数据,并将其序列化
            var pars = $("#editForm").serializeArray();
            $.post("02-05新闻编辑.ashx", pars, function (data) {
                if (data == "ok") {
                    //清空原有数据
                    $("#tableList tr:gt(0)").remove();
                    //重新加载
                    pageLoad();
                    $.messager.show({
                        title: "提示",
                        msg: "修改成功!",
                        showType: "show"
                    });
                    //关闭对话框
                    $(‘#editDiv‘).dialog(‘close‘);
                } else {
                    $.messager.alert("提示", "修改失败", "error");
                }
            });
        }
        //08 为页码条添加单击事件
        function bindPageBarClick() {
            $(".pageBar").click(function () {
                var pageIndex = $(this).attr(‘href‘).split("=")[1];
                //清空原有数据
                $("#tableList tr:gt(0)").remove();
                pageLoad(pageIndex);
                return false;
            });
        }

    </script>
</head>
<body>
     <input type="button" id="btnAddNewsInfo"  value="添加新闻" onclick="bindAddClick()"/>
    <table id="tableList">
        <thead>
        <th>新闻Id</th>   <th>新闻标题</th>   <th>新闻内容</th>   <th>发布时间</th> <th>删除</th>   <th>详细</th>  <th>编辑</th>
        </thead>
    </table>
    <div id="pageBarDiv" class="page_nav">

    </div>
    <!------------03详细信息-Start----------------->
    <div id="detailDiv">
        <table>
            <tr>
                <td>新闻Id</td>
                <td><span id="NewId"></span></td>
            </tr>
            <tr>
                <td>上传者</td>
                <td><span id="SubBy"></span></td>
            </tr>
            <tr>
                <td>所属类型</td>
                <td><span id="TypeId"></span></td>
            </tr>
        </table>
    </div>
    <!------------03详细信息-End----------------->
    <!------------04删除信息-start---End----------------->

    <!------------05添加信息-Start----------------->
    <div id="addDiv">
        <table>
            <tr>
                <td>新闻标题</td>
                <td><input type="text" id="AddNewsTitle" /> </td>
            </tr>
            <tr>
                <td>新闻内容</td>
                <td><input type="text" id="AddNewsContent" /> </td>
            </tr>

        </table>
    </div>
    <!------------05添加信息-End----------------->
    <!------------06编辑信息-Start----------------->
    <div id="editDiv">
        <form id="editForm">
            <input type="hidden" name="txtEditNewsId" id="editNewsId" />
            <table>
                <tr><td>新闻标题</td><td><input type="text" name="txtEditNewsTitle" id="eidtNewsTitle" /></td></tr>
                <tr><td>新闻内容</td><td><input type="text" name="txtEditNewsContent" id="editNewsContent" /></td></tr>
                <tr><td>新闻类型</td><td><input type="text" name="txtEditTypeId" id="editTypeId" /></td></tr>
            </table>
        </form>
    </div>
    <!------------06编辑信息-End----------------->

</body>
</html>

html

时间: 2024-08-19 05:55:12

步步为营-78-新闻展示(Ajax+Json+easyUI)的相关文章

ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)

0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询. 1.页面中的模态框与分页组件(注意:需要隐藏一个页号,点击分页插件的时候给隐藏的页号赋值,ajax再次请求的时候取页面的页号值) <!-- 隐藏查询条件的页号 --> <input type="hidden" name="currentPage" id="currentPage"> <!-- 模态框 统计详细

JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对此,给出代码示例,通过网络爬虫技术,将上传到HDFS的新浪网新闻信息实现热词统计功能,通过图表的柱状图来显示出来. ------> 目录: 1.JFreeChart可视化处理(生成本地图片) [1]HDFS文件读取 [2]JDFreeChart库应用 2.AJAX+JSON+EChart生成可视化图

EasyUI + Struts2 + Ajax 显示 easyui datagrid 分页效果

1.Html代码 1 <script type="text/javascript" src="/js/easyui/jquery.min.js"></script> 2 <script type="text/javascript" src="/js/easyui/jquery.easyui.min.js"></script> 3 <script type="tex

Java SSH 项目总结——Ajax+Json 级联菜单

前言 前台JSP页面需要实现下拉菜单的级联效果,实现方式如题,采用Ajax+Json,分享下实现过程. 正题 先看下效果图: 前台 <tr> <td> 注册地址 <!-- registeredAddressSection --> </td> <td> <select class="combox" id="zhuceid" name="zhuceid" onchange="

032.Ajax+Json+Jquery

AjjA: AjaxJ: JSONJ: jQuery -----------------------------------------------JSONJavascript Object NotationJS对象标记 class User{ public int Id{get;set;} public string Name{get;set;} public string Phone{get;set;} // public string HomeAddress{get;set;} // pu

struts2 + ajax + json的结合使用,实例讲解

struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar PS:版本可自己控制!~ 2.过程 ①引入json依赖包 ②编写action类 ③配置struts.xml ④编写页面 ⑤测试 3.实例 ① action类,JsonAction  注

echarts3+ajax+json+SpringMVC+mybatis

最近使用的东西有点多,就不分开描述了,写在一起,也比较连贯 最近在写统计查询,所以用到了echarts3,用了几个小时看了下,还是不错的,主要准备好字符串,直接嵌入就可以 下面我描述下需求,这样在看代码还能有一些针对性 需求:实现对访问记录的统计,每天一个访问记录表,需要根据时间段进行查询(这里面就设计到联调查询),同时,在页面点击某一天的数据时,需要显示这一天每个时段的访问人数(这里面就有点意思了,用到了ajax+json) 好,先附一张截图 这就是最后显示的样子,下面来点实惠的,上代码~ 我

用ListView实现新闻展示

ListView是一个可以在垂直滚动的列表中显示的一个控件,条目的内容来自一个ListAdapter. 由于ListAdapter是一个有很多参数的接口,所以直接去实现它就很麻烦,一般是直接去继承BaseAdapter类. 下面说正题. 在安卓应用中,一般的新闻展示可以用ListView控件来实现,先看效果.新闻内容只弄三个,其它就直接 for 100次了,所以很多重复的,图片是我在网上随便选的,别在意... 右图是我的目录结构. 首先是在activity_main.xml中加入ListView

Spring 接收转换 jquery ajax json数组字符串

1.ajax发送json字符串 </pre><p>组建对象</p><p></p><pre code_snippet_id="449843" snippet_file_name="blog_20140813_2_7927326" name="code" class="javascript">var student = new Object(); studen