js子窗体、父窗体方法互调
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>
主窗体
js子窗体、父窗体方法互调的更多相关文章
- Vue子父组件方法互调
讲干货,不啰嗦,大家在做vue开发过程中经常遇到父组件需要调用子组件方法或者子组件需要调用父组件的方法的情况,现做一下总结,希望对大家有所帮助. 父组件调用子组件方法: 1.设置子组件的ref,父组件 ...
- js中子页面父页面方法和变量相互调用
(1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名window.parent相当于定位到父页面 之后的操作和在父页面中写代码一样写 window.parent.aa ...
- js中子页面父页面方法 变量相互调用(转)
原文:https://www.cnblogs.com/huangshuqiang/p/5734358.html (1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名w ...
- js中子页面父页面方法 变量相互调用
(1)子页面调用父页面的方法或者变量: window.parent.方法()或者变量名window.parent相当于定位到父页面 之后的操作和在父页面中写代码一样写 window.parent.a ...
- C# 子窗体点击按钮产生的新子窗体放在父窗体里
情景展示: 父窗体Form1,左边是按钮,右边是panel(放置子窗体) 父窗体点击按钮,在panel显示第一个子窗体AA, AA有个按钮,点击按钮,是第二个子窗体ZZ, 怎样将AA的子窗体ZZ也显示 ...
- 不创建父窗体的情况下他其他窗体的信息显示在第一个打开的窗体!(winfrom)
公司使用vs2008做的东西,用vs2017都打不开了(编译错误) 叫我更新一下,我看了一下,08的项目 和 winform 差不多 如何就用winfrom来做了 (winform 很久没碰了,, ...
- uniapp和vue 父向子传值、传方法及子向父传值。(一看就会超级简约)
1.父向子传值:父组件在引用子组件时通过自定义属性绑定自身需要传递的值(数据),子组件用props:[ '自定义' ]接收即可使用(props里数据是只读模式).(简约版:子绑定父的属性并用pro ...
- 子窗体与父窗体调用对方js方法
有时候为了减少一个页面内的代码量,会将部分内容放到子窗体中,如后台管理中用iframe来进行管理 <div> <iframe id="dviframe" src= ...
- winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...
随机推荐
- 3ds Max Shortcuts 快捷键大全
主界面 [Q]选择循环改变方式 [W]移动 [E]旋转 [R]缩放循环改变方式 [7]物体面数 [8]Environment [9]Advanced lighting [0]Render to Tex ...
- IE hack中主要的几个
_: IE6; #*+.: IE6 IE7; black\0: IE8; black\9: IE所有; @media screen\9 { … }: IE6 IE7; @media \0screen\ ...
- scroll、offset和client的区别
整体布局: <!DOCTYPE> <head> <meta http-equiv="Content-Type" content="text/ ...
- Linux下安装配置Apache+PHP+MariaDB
一.安装apache 1.下载并安装apache yum install httpd 2.启动apache systemctl start httpd.service 3.停止apache syste ...
- 2016HUAS暑假集训训练2 J - 今年暑假不AC
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/J 此题要求是计算能够看到最多的节目 ,贪心算法即可,首先对结束时间排序,然后在把开 ...
- ZedBoard 引脚约束参考
从ISE转换到Vivado时,UCF转XDC的几种方法: (1)软件自动转换 参考网址:Youtube 用ISE->EDK->PlanAhead打开所需转换的工程文件*.xise,并打开b ...
- SQL Server如何添加登录名
1.电脑上如果安装有SQL Server,我们在开始里面打开SQL Server Management Studio,或者以桌面的快捷方式等打开SQL Server. 2.首先以Windows身份验证 ...
- 20145334赵文豪 《Java程序设计》第3周学习总结
20145334赵文豪 <Java程序设计>第3周学习总结 教材学习内容总结 下面的是代码托管的截图 第四章学习内容总结 4.1 类与对象 1.对象(Object): 存在的具体实体,具有 ...
- Array-基本功能
<title>Array-基本功能</title></head> <body> <script type="text/javascrip ...
- MySQL查询优化:查询慢原因和解决技巧
在开发的朋友特别是和mysql有接触的朋友会碰到有时mysql查询很慢,当然我指的是大数据量百万千万级了,不是几十条了,下面我们来看看解决查询慢的办法. MySQL查询优化:查询慢原因和解决方法 会经 ...