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里,实现左侧是导航,中间是操 ...
随机推荐
- webservice的Axis2入门教程java版
本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebServi ...
- [转]CPU的位数与操作系统的位数的区别
转自:http://weiheyouchou.blog.hexun.com/35564976_d.html 随着近来AMD和Intel的64位CPU以及 Microsoft 64位操作系统的相继发布, ...
- Aspose Cells 添加数据验证(动态下拉列表验证)
参考 :http://www.componentcn.com/kongjianjishu/kongjianjishu/2015-06-04/2781.html Aspose Cells是一款操作和处理 ...
- NGUI事件监听之UIEventListener的使用
NGUI的事件绑定可以使用 UIButtonMessage 在一个游戏对象上添加Button Message组件: 在Button Message组件上添加要通知的游戏对象上所挂载的脚本的方法 Tar ...
- thinkphp 关于iframe一次提交完成所有操作
一.上传操作html界面,upload.html <import type='css' file="admin.css.common" /> <import ty ...
- 20145334赵文豪 《Java程序设计》第3周学习总结
20145334赵文豪 <Java程序设计>第3周学习总结 教材学习内容总结 下面的是代码托管的截图 第四章学习内容总结 4.1 类与对象 1.对象(Object): 存在的具体实体,具有 ...
- Python中的属性管理
Python管 理属性的方法一般有三种:操作符重载(即,__getattr__.__setattr__.__delattr__和 __getattribute__,有点类似于C++中的重载操作符).p ...
- php课程---文件操作及文件上传的代码总结
php里面文件包含目录和文件两种 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- centos同步北京时间
yum install ntp ntpdate #ntpdate -u 202.120.2.101 //写入硬件 #hwclock -w 以下是国内常见的NTP服务器 ntp.sjtu.edu.cn ...
- 获取唯一UUID/UDID方案
概述 如何保证获取到的UUID能够唯一标识每一台设备呢?我们知道通过UIDevice可以获取到UUIDString,但是如果App被删除了然后重新安装,就会得到不同的UUIDString,这并不是我们 ...