zoukankan      html  css  js  c++  java
  • JavaScript父子页面之间的相互调用

    父页面:

    <!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="/Scripts/jquery-1.7.1.js"></script>-->
    <link href="../Content/style/NavPager.css" rel="stylesheet" />

    <link href="../Content/style/tableStyle.css" rel="stylesheet" />

    <link href="../Scripts/jquery-easyui-1.3.1/themes/default/easyui.css" rel="stylesheet" />

    <link href="../Scripts/jquery-easyui-1.3.1/themes/icon.css" rel="stylesheet" />


    <script src="../Scripts/jquery-easyui-1.3.1/jquery-1.8.0.min.js"></script>

    <script src="../Scripts/jquery-easyui-1.3.1/jquery.easyui.min.js"></script>

    <script src="../Scripts/jquery-easyui-1.3.1/locale/easyui-lang-zh_CN.js"></script>

    <script type="text/javascript">
    $(function () {
    initTable();//初始化表格

    $("#DetailDiv").css("display", "none");
    $("#EditDiv").css("display", "none");

    });

    //绑定点击详情的 超级链接
    function bindDetailLinkClickEvent() {
    $("#tbBody a:contains('详情')").click(function () {

    var newsId = $(this).attr("newsId");
    getNewsToDetail(newsId);//获取新闻详情然后把数据放到div上去。
    showDetailDialog();//弹出一个显示详情的Div

    return false;
    });
    }

    //弹出一个显示详情的Div
    function showDetailDialog() {
    //弹出一个Div
    $("#DetailDiv").css("display", "block");
    //把这个div弹出到 中间,而且是模态
    $("#DetailDiv").dialog({
    title: "详情对话框",
    500,
    height: 500,
    modal: true,
    collapsible: true,
    minimizable: true,
    maximizable: true,
    resizable: true,
    buttons: [{
    text: "添加",
    iconCls: "icon-add",
    handler: function () {
    alert('add');
    }
    }, {
    text: "关闭",
    iconCls: "icon-cancel",
    handler: function () {
    $("#DetailDiv").dialog("close");
    }
    }]
    });
    }

    //获取新闻详情然后把数据放到div上去。
    function getNewsToDetail(newsId) {
    //发送一个异步请求,把后台加载的数据放到div上去。
    $.getJSON("GetNewsById.ashx", { id: newsId }, function (data) {
    $("#spTitle").text(data.title);
    $("#spContent").html(data.content);
    });

    }

    //初始化表格
    function initTable(postData) {
    $.ajax({
    url: "LoadAllNews.ashx",
    data: postData,//发送后台数据
    dataType: "json",//后台返回数据的类型
    type: "post",//请求类型
    success: function (data) {
    $("#tbBody").html("");
    for (var i in data.NewsList) {
    var strTr = "<tr>";
    strTr += "<td>" + data.NewsList[i].title + "</td>";
    strTr += "<td>" + data.NewsList[i].ID + "</td>";
    strTr += "<td>" + data.NewsList[i].people + "</td>";
    strTr += "<td><a newsId='" + data.NewsList[i].ID + "' href='#'>详情</a>&nbsp;";
    strTr += "<a class='deleteLink' newsId='" + data.NewsList[i].ID + "' href='#'>删除</a>";
    strTr += "<a class='editLink' newsId='" + data.NewsList[i].ID + "' href='#'>修改</a></td>";
    strTr += "</tr>";
    $("#tbBody").append(strTr);
    }

    //把分页的标签添加到页面里面去
    $("#NavLink").html(data.NavHtml);

    //绑定分页超级链接标签的点击事件
    bindNavLinkClickEvent();

    bindDetailLinkClickEvent();//绑定点击详情的 超级链接
    bindEditLinkClickEvent();//绑定点击修改的 超级链接
    bindDeleteLinkClickEvent();//绑定点击修改的 超级链接

    }
    });
    }

    //绑定分页超级链接标签的点击事件
    function bindNavLinkClickEvent() {
    $(".pageLink").click(function() {
    //改变当前 页数据。
    //改变分页标签。
    var href = $(this).attr("href");
    var strPostData = href.substr(href.lastIndexOf('?') + 1);
    initTable(strPostData);//
    return false;
    });
    }


    function bindDeleteLinkClickEvent() {
    $(".deleteLink").click(function () {
    var link = $(this).parent().parent();
    var newsId = $(this).attr("newsId");
    $.messager.confirm("提醒", "会删除吗?", function(r) {
    if (r) {
    //发送异步请求到后台,然后把这条数据剁掉。
    $.post("DeleteNews.ashx", { id: newsId }, function(data) {
    if (data == "ok") {
    link.fadeOut("slow");
    } else {
    $.messager.alert("提醒","删除失败","warning");
    }
    });
    }
    });

    return false;
    });
    }


    //绑定 修改 超级链接的事件的响应方法
    function bindEditLinkClickEvent() {
    $(".editLink").click(function() {
    var newsId = $(this).attr("newsId");
    //从后台加载数据然后把数据放到修改文本框上去。
    //getNews2EditForm(newsId);

    //弹出对话框之前,把iframe标签的src属性设置成 修改页面地址。
    $("#editFrame").attr("src", "EditNews.aspx?id=" + newsId);

    showEditDialog(); //显示修改的对话框
    });
    }

    //从后台加载数据然后把数据放到修改文本框上去。
    function getNews2EditForm(newsId) {
    $.getJSON("GetNewsById.ashx", {id:newsId}, function(data) {
    $("#txtTitle").val(data.title);
    $("#txtPeople").val(data.people);
    $("#hidId").val(data.ID);
    });
    }

    //显示修改的对话框
    function showEditDialog() {
    //显示一个修改 的对话框
    $("#EditDiv").css("display", "block");
    //把这个div弹出到 中间,而且是模态
    $("#EditDiv").dialog({
    title: "修改对话框",
    500,
    height: 500,
    modal: true,
    collapsible: true,
    minimizable: true,
    maximizable: true,
    resizable: true,
    buttons: [{
    text: "修改",
    iconCls: "icon-edit",
    handler: submitChildEditFrm //submitEditFrm
    }, {
    text: "关闭",
    iconCls: "icon-cancel",
    handler: function () {
    $("#EditDiv").dialog("close");
    }
    }]
    });
    }

    //提交子容器的修改表单。
    function submitChildEditFrm()
    {
    //拿到子容器的windows对象
    var domFrame = $("#editFrame")[0];
    domFrame.contentWindow.submitFrm();
    }

    //当修改成功之后,由子容器来调用的方法
    function afterEditSuccess() {
    //关闭对话框,刷新表格
    $("#EditDiv").dialog("close");
    initTable();
    }

    //异步提交修改的表单
    function submitEditFrm() {
    var postData = $("#editFrm").serializeArray();
    $.post("ProcessEdit.ashx",postData, function(data) {
    if (data == "ok") {
    //修改成功:关闭修改对话框,刷新表格
    $("#EditDiv").dialog("close");
    initTable();//刷新表格
    } else {
    $.messager.alert("提醒消息", "修改败了", "warning");
    }
    });
    }
    </script>
    </head>
    <body>
    <table>
    <thead>
    <tr>
    <th>新闻标题</th><th>新闻编号</th><th>发布人</th><th>操作</th>
    </tr>
    </thead>
    <tbody id="tbBody">

    </tbody>
    </table>

    <!----------------------显示分页控件标签 开始------------------------------>
    <div id="NavLink" class="paginator">

    </div>
    <!----------------------显示分页控件标签 结束------------------------------>


    <!----------------------显示修改的对话框 开始------------------------------>
    <div id="EditDiv">
    <iframe src="javascript:void(0)" id="editFrame" width="100%" height="100%" frameborder="0"></iframe>
    </div>
    <!----------------------显示修改的对话框 结束------------------------------>

    <!----------------------显示详情信息的对话框 开始------------------------------>
    <div id="DetailDiv">
    <h1>显示详情信息</h1>
    <hr/>
    <table>
    <tr>
    <td>新闻标题:</td>
    <td><span id="spTitle"></span></td>
    </tr>
    <tr>
    <td>新闻内容:</td>
    <td><span id="spContent"></span></td>
    </tr>
    </table>
    </div>
    <!----------------------显示详情信息的对话框 结束------------------------------>

    </body>
    </html>

    子页面:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EditNews.aspx.cs" Inherits="WebDemo.Web._2013_12_3.EditNews" ValidateRequest="false" %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="/Scripts/jquery-1.7.1.js"></script>
    <script type="text/javascript">
    $(function () {
    });

    function submitFrm() {
    //alert("我是子容器");
    //让下面的表单整体的异步的提交到后台。
    var postData = $("#form1").serializeArray();
    $.post("EditNews.aspx", postData, function (data) {
    if (data == "ok") {
    //修改成功
    //关闭父容器的对话框,刷新父容器的表格。
    window.parent.window.afterEditSuccess();
    }else {
    alert("败了啊");
    }
    });
    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <input type="hidden" name="hidId" value="<%= News.ID %>"/>
    <table>
    <tr>
    <td>新闻标题:</td>
    <td>
    <input type="text" name="title" value="<%= News.title %>"/>
    </td>
    </tr>
    <tr>
    <td>新闻发布人:</td>
    <td>
    <input type="text" name="people" value="<%= News.people %>"/>
    </td>
    </tr>
    <tr>
    <td>新闻内容:</td>
    <td>
    <textarea name="content" cols="50" rows="10">
    <%= News.content %>
    </textarea>
    </td>
    </tr>

    </table>

    </div>
    </form>
    </body>
    </html>

  • 相关阅读:
    Mysql 库表
    Mysql (二)
    SQLAlchemy
    Mysql 测试题
    jquery
    抽屉 演示
    前端项目
    JavaScript
    Html Css  练习
    Pandas之DataFrame——Part 3
  • 原文地址:https://www.cnblogs.com/jiangyunfeng/p/10794422.html
Copyright © 2011-2022 走看看