子窗体、父窗体方法互调

var childWindow = $("#editFrame")[0].contentWindow;//获取子窗体的window对象.
childWindow.subForm();

$("#editFrame")得到frame

[0].contentWindow//frame的子窗体,将JQUERY对象转化为DOM对象

subForm();//字窗体定义的方法

-----------------------------------------------------

子窗体调用父窗体的方法

function afterEdit(data) {
if (data == "ok") {
window.parent.afterEdit(data);
}
}

-------------------------------------

@model CZBK.ItcastOA.Model.RoleInfo

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>编辑角色信息</title>
    <script src="~/Scripts/jquery-1.7.1.min.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script type="text/javascript">
        function subForm() {
            $("#editForm").submit();
        }
        function afterEdit(data) {
            if (data == "ok") {
                window.parent.afterEdit(data);
            }
        }
    </script>
</head>
<body>
    @using (Ajax.BeginForm("EditRoleInfo", "RoleInfo", new { }, new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterEdit" }, new {id="editForm"}))
    {
        @Html.ValidationSummary(true)

        <fieldset>
            <legend>RoleInfo</legend>

            @Html.HiddenFor(model => model.ID)

            <div class="editor-label">
                @Html.LabelFor(model => model.RoleName, "角色名称")
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.RoleName)
                @Html.ValidationMessageFor(model => model.RoleName)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.DelFlag)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.DelFlag)
                @Html.ValidationMessageFor(model => model.DelFlag)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.SubTime)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.SubTime)
                @Html.ValidationMessageFor(model => model.SubTime)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.Remark)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Remark)
                @Html.ValidationMessageFor(model => model.Remark)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.ModifiedOn)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.ModifiedOn)
                @Html.ValidationMessageFor(model => model.ModifiedOn)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.Sort)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Sort)
                @Html.ValidationMessageFor(model => model.Sort)
            </div>

        </fieldset>
    }

    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
</body>
</html>

子窗体

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>角色管理</title>
     <link href="~/Content/themes/default/easyui.css" rel="stylesheet" />
    <link href="~/Content/themes/icon.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-1.7.1.min.js"></script>
    <script src="~/Scripts/jquery.easyui.min.js"></script>
    <script src="~/Scripts/easyui-lang-zh_CN.js"></script>
    <script src="~/Scripts/datapattern.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
      <script type="text/javascript">
          $(function () {
              loadData();
              $("#addDiv").css("display", "none");
              $("#editDiv").css("display", "none");

          });
          function loadData(pars) {
              $(‘#tt‘).datagrid({
                  url: ‘/RoleInfo/GetRoleInfo‘,
                  title: ‘角色数据表格‘,
                  width: 700,
                  height: 400,
                  fitColumns: true, //列自适应
                  nowrap: false,
                  idField: ‘ID‘,//主键列的列明
                  loadMsg: ‘正在加载角色的信息...‘,
                  pagination: true,//是否有分页
                  singleSelect: false,//是否单行选择
                  pageSize: 5,//页大小,一页多少条数据
                  pageNumber: 1,//当前页,默认的
                  pageList: [5, 10, 15],
                  queryParams: pars,//往后台传递参数
                  columns: [[//c.UserName, c.UserPass, c.Email, c.RegTime
                      { field: ‘ck‘, checkbox: true, align: ‘left‘, width: 50 },
                      { field: ‘ID‘, title: ‘编号‘, width: 80 },
                      { field: ‘RoleName‘, title: ‘角色名称‘, width: 120 },
                       { field: ‘Sort‘, title: ‘排序‘, width: 120 },
                        { field: ‘Remark‘, title: ‘备注‘, width: 120 },
                      {
                          field: ‘SubTime‘, title: ‘时间‘, width: 80, align: ‘right‘,
                          formatter: function (value, row, index) {
                              return (eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).pattern("yyyy-M-d");
                          }
                      }
                  ]],
                  toolbar: [{
                      id: ‘btnDelete‘,
                      text: ‘删除‘,
                      iconCls: ‘icon-remove‘,
                      handler: function () {

                          deleteInfo();
                      }
                  }, {
                      id: ‘btnAdd‘,
                      text: ‘添加‘,
                      iconCls: ‘icon-add‘,
                      handler: function () {

                          addInfo();
                      }
                  }, {
                      id: ‘btnEdit‘,
                      text: ‘编辑‘,
                      iconCls: ‘icon-edit‘,
                      handler: function () {

                          eidtInfo();
                      }
                  }],
              });
          }
          //编辑用户信息
          function eidtInfo() {
              var rows = $(‘#tt‘).datagrid(‘getSelections‘);
              if (rows.length != 1) {
                  //alert("请选择要修改的商品!");
                  $.messager.alert("提醒", "请选择要编辑的1条记录!", "error");
                  return;
              }
             // $.post("/UserInfo/GetUserInfoModel", { "id": rows[0].ID }, function (data) {
                  //if (data.msg == "ok") {
                      //$("#txtUName").val(data.serverData.UName);
                      //$("#txtUPwd").val(data.serverData.UPwd);
                      //$("#txtRemark").val(data.serverData.Remark);
                      //$("#txtSort").val(data.serverData.Sort);
                      //$("#txtSubTime").val(ChangeDateFormat(data.serverData.SubTime));
                      //$("#txtDelFlag").val(data.serverData.DelFlag);
              //$("#txtId").val(data.serverData.ID);
              $("#editFrame").attr("src", "/RoleInfo/ShowEditInfo/?id=" + rows[0].ID);
             $("#editDiv").css("display", "block");

                      $(‘#editDiv‘).dialog({
                          title: "编辑角色信息",
                          width: 300,
                          height: 350,
                          collapsible: true,
                          resizable: true,
                          modal: true,
                          buttons: [{
                              text: ‘确定‘,
                              iconCls: ‘icon-ok‘,
                              handler: function () {
                                  //$("#editForm").submit();//提交表单
                                  var childWindow = $("#editFrame")[0].contentWindow;//获取子窗体的window对象.
                                  childWindow.subForm();
                              }
                          }, {
                              text: ‘取消‘,
                              handler: function () {
                                  $(‘#editDiv‘).dialog(‘close‘);
                              }
                          }]
                      });

          }
          //修改完成以后调用该方法
          function afterEdit(data) {
              if (data == "ok") {
                  $(‘#editDiv‘).dialog(‘close‘);
                  $(‘#tt‘).datagrid(‘reload‘);
              } else {
                  $.messager.alert("提醒", "修改数据错误!!", "error");
              }
          }

          //添加信息
          function addInfo() {
              $("#addDiv").css("display", "block");
              $(‘#addDiv‘).dialog({
                  title: "添加角色信息",
                  width: 300,
                  height: 300,
                  collapsible: true,
                  resizable: true,
                  modal: true,
                  buttons: [{
                      text: ‘确定‘,
                      iconCls: ‘icon-ok‘,
                      handler: function () {
                          $("#addForm").submit();//提交表单
                      }
                  }, {
                      text: ‘取消‘,
                      handler: function () {
                          $(‘#addDiv‘).dialog(‘close‘);
                      }
                  }]
              });

          }
          //添加完成以后调用该方法
          function afterAdd(data) {
              if (data == "ok") {
                  $("#addForm input").val("");
                  $(‘#addDiv‘).dialog(‘close‘);
                  $(‘#tt‘).datagrid(‘reload‘);
              } else {
                  $.messager.alert("提示", "添加失败", "error");
              }
          }
          //删除用户数据
          function deleteInfo() {
              var rows = $(‘#tt‘).datagrid(‘getSelections‘);
              if (!rows || rows.length == 0) {
                  //alert("请选择要修改的商品!");
                  $.messager.alert("提醒", "请选择要删除的记录!", "error");
                  return;
              }
              $.messager.confirm("提示", "确定要删除该记录?", function (r) {
                  if (r) {
                      var strId = "";
                      for (var i = 0; i < rows.length; i++) {
                          strId = strId + rows[i].ID + ",";//1,2,3,
                      }
                      strId = strId.substr(0, strId.length - 1);
                      $.post("/RoleInfo/DeleteRoleInfo", { "strId": strId }, function (data) {
                          if (data == "ok") {
                              $(‘#tt‘).datagrid(‘clearSelections‘);
                              $(‘#tt‘).datagrid(‘reload‘);
                              //loadData();
                          } else {
                              $.messager.alert("提醒", "删除的记录失败!", "error");
                          }
                      });
                  }
              });
          }

          //将序列化成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>
     <div>

           <table id="tt" style="width: 700px;" title="标题,可以使用代码进行初始化,也可以使用这种属性的方式" iconcls="icon-edit">
    </table>
    </div>
    <!---------------添加用户信息--------------------->
    <div id="addDiv">
        @using(Ajax.BeginForm("AddRoleInfo", "RoleInfo", new { }, new AjaxOptions() {HttpMethod="post", OnSuccess="afterAdd"}, new {id="addForm"})){
        <table>
            <tr><td>角色名称</td><td><input type="text" name="RoleName" /></td></tr>
             <tr><td>排序</td><td><input type="text" name="Sort" /></td></tr>
             <tr><td>备注</td><td><input type="text" name="Remark" /></td></tr>

        </table>
        }
    </div>
        <!---------------添加用户信息结束--------------------->

        <!---------------修改用户信息--------------------->
     <div id="editDiv">
         <iframe id="editFrame" scrolling="no" width="100%" height="100%" frameborder="0"></iframe>
       @* @using(Ajax.BeginForm("EditUserInfo", "UserInfo", new { }, new AjaxOptions() {HttpMethod="post", OnSuccess="afterEdit"}, new {id="editForm"})){
            <input type="hidden" name="SubTime" id="txtSubTime" />
            <input type="hidden" name="DelFlag" id="txtDelFlag" />
            <input type="hidden" name="ID" id="txtId" />
        <table>
            <tr><td>用户名</td><td><input type="text" name="UName" id="txtUName" /></td></tr>
             <tr><td>密码</td><td><input type="text" name="UPwd" id="txtUPwd" /></td></tr>
             <tr><td>备注</td><td><input type="text" name="Remark" id="txtRemark" /></td></tr>
             <tr><td>排序</td><td><input type="text" name="Sort" id="txtSort" /></td></tr>

        </table>
        }*@
    </div>

        <!---------------修改用户信息结束--------------------->
</body>
</html>

主窗体

时间: 2024-11-02 06:58:47

子窗体、父窗体方法互调的相关文章

iframe子窗口父窗口方法调用和元素获取

1.父窗口调用iframe里面的方法 iframename.window.method(); 2.子窗口调用父窗口方法 parent.window.method(); 3.父窗口获取iframe里面元素 $("#id",document.frames["iframename"].document); 4.子窗口获取父窗口元素 $("#id",parent.document);

子窗体和父窗体双向传值——C#窗体传值方法总结

简介 在很多场景下,我们的程序需要完成窗体间的传值功能,有时候是父窗体→子窗体单向传值.子窗体→父窗体传值甚至是,也有时候我们需要父窗体?子窗体双向传值. 在本文中主要介绍一些能够实现双向传值的方法,能够双向传值的方法也能够实现单向传值. 本文的所有源码都可以在GitHub上下载. 本文介绍的方法仅限于我自己知道并且实现过的,我相信还有很多我并不知道的方法,因此也许在很多朋友眼中本文的内容是浅显甚至可笑的,希望路过的各方朋友不吝赐教,我也希望不断地进步! 方法1:Public字段+ShowDia

【转】C# 子窗体如何调用父窗体的方法

网络上有几种方法,先总结如下: 调用窗体(父):FormFather,被调用窗体(子):FormSub. 方法1: 所有权法       //FormFather:        //需要有一个公共的刷新方法       public void Refresh_Method()        {                //...        }        //在调用FormSub时,要把FormSub的所有者设为FormFather        FormSub f2 = new

.Net子窗体给父窗体传值的几种方法

其实方法有很多种,这里只介绍3种,大家如有更好的方法可互相学习学习. 1.子父窗体Owner设定法: Form1: void Button_fm1_Click(object sender, EventArgs e) { Form2 fm2 = new Form2(); fm2.Owner = this;   //将Form2的Owner指针指向Form1 fm2.ShowDialog(); } Form2: void Button_fm2_Click(object sender, EventAr

C# WeifenLuo.WinFormsUI.Docking.dll 应用之问题集 子窗体访问父窗体方法

父窗体内容,需要在子窗体获取的方法为 CheckFormIsOpen private frmMenu frmMenu = new frmMenu(); public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { frmMenu.P_fm = this; frmMenu.Show(this.dockPanelMain); } public bool Check

jquery中ifram子窗体调用父窗体方法、父窗体调用子窗体方法

//调用子窗体中的方法. var childWindow = $("#AddFrame")[0].contentWindow;//获取子窗体的window对象 childWindow.subForm(); //调用父窗体中的方法 window.parent.afterAdd();

winfrom 子窗体调用父窗体中的方法

在父窗体里定义委托 public delegate void inis(string str); 在父窗体中定义要调用的方法 public void inigs(string gs) { textBox1.Text = gs; } 在new窗体的时候传递委托  (我这里form4是父窗体 form5是子窗体) inis i = new inis(inigs); Form5 f5 = new Form5(i); f5.Show(); 在新窗体中接收 Form4.inis ii; List<stri

C# winform 子窗体刷新父窗体的所有方法总结

调用窗体(父):Form1,被调用窗体(子):Form2    方法1:    所有权法    //Form1:    //需要有一个公共的刷新方法    public   void    Refresh_Method()    {    //...    }    //在调用Form2时,要把Form2的所有者设为Form1    Form2    f2    =   new    Form2()    ;    f2.Owner    =   this;    f2.ShowDialog()

子窗体中如何调用父窗体里的方法

有两个窗体,一个子窗体,一个父窗体,当点击父窗体中的按钮,弹出子窗体,在子窗体中添加完数据,单击确定按钮后,数据在父窗体的数据显示控件中立即显示,实现其实很简单,同时方法也很多,我是利用了一种最简单的方法. 子窗体SubForm:protected void btnOk_Click(object sender,EventArgs arg){   //插入数据的代码   if(插入数据成功)      this.DialogResult=DialogResult.Ok;} 父窗体:protecte