话不多gang,先上代码,将以下三个属性插入主网格的初始化参数中:

        view : detailview,    //1
detailFormatter : function(index, row) { //2
return '<div style="padding:2px"><table class="ddv"></table></div>';
},
onExpandRow : function(index, row) { //3
//首先创建子网格你得有容器
var ddv = $(this).datagrid('getRowDetail',index).find('table.ddv');
//这步是将此容器属性赋给一个外部变量
myddv=ddv;
//设置当打开另一个子网格时,折叠上一个
var rows = $('#singlechoice_datagrid').datagrid('getRows');
$.each(rows,function(i,k){
//获取当前所有展开的子网格
var expander = $('#singlechoice_datagrid').datagrid('getExpander',i);
if(expander.length && expander.hasClass('datagrid-row-collapse')){
if(k.id != row.id){
//折叠上一次展开的子网格
$('#singlechoice_datagrid').datagrid('collapseRow',i);
}
}
});
//子网格初始化参数
ddv.datagrid({
url : 'checkAnswer?id='
+ row.id,
fitColumns : true,
singleSelect : true,
checkbox : true,
height : 'auto',
columns : [ [{
field : 'options',
title : '选项内容',
align : 'center',
width : 200
},{
field : 'answer',
title : '选项对错',
align : 'center',
width : 200,
formatter : function(
value,
row,
index) {
if (value == 1) {
return "正确";
} else {
return "错误";
}
}
} ] ],
toolbar:[
{
text:'新增选项',
iconCls:'icon-add', //小图标
handler:function(){
$('#myform').form('clear'); //重置表单数据
flag="add";
$('#answer').combobox('select',0);
$('#itemId').val(row.id); //传递存储答案需要的相关数据
$('#kcid').val(row.konw.course.id);
$('#knowid').val(row.konw.id);
$('#mydialog').dialog({ //动态生成表头
title:'新增选项',
});
$('#mydialog').dialog('open');
}
},{
text:'修改选项',
iconCls:'icon-edit',
handler:function(){
flag="edit";
var arr = ddv.datagrid('getSelections'); //返回选中记录
//判断是否选择一条记录或多条或未选
if(arr.length == 0){
$.messager.show({
title:'提示信息!',
msg:'您还未选择要修改的数据!每次只能修改一条数据哟!',
height:180,
width:220
});
}else if(arr.length != 1){
$.messager.show({
title:'提示信息!',
msg:'每次只能选择一条数据进行修改!',
height:180,
width:220
});
}else{
$('#myform').form('clear');
$('#mydialog').dialog({ //动态生成表头
title:'修改选项',
});
$('#mydialog').dialog('open'); //打开窗口
//重写数据
$('#myform').form('load',{
itemId:arr[0].item.id,
answerid:arr[0].id,
options:arr[0].options,
answer:arr[0].answer,
course:arr[0].know.course.id,
know:arr[0].know.id,
iden:arr[0].item.iden
});
}
}
},{
text:'删除选项',
iconCls:'icon-remove',
handler:function(){
var arr = ddv.datagrid('getSelections');
if(arr.length <= 0){
$.messager.show({
title:'提示信息!',
msg:'至少选择一条数据进行删除',
height:180,
width:220
});
}else{
$.messager.confirm('提示信息','确认删除?',function(r){
if(r){
//批量删除
var ids = '';
for(var i = 0;i < arr.length;i++){
ids += arr[i].id+',';
}
ids = ids.substring(0 , ids.length - 1);
$.post('delete',{ids:ids},function(result){
//1.刷新数据表格
ddv.datagrid('reload');
//2.清空idField
ddv.datagrid('unselectAll');
});
}else{
return;
}
});
}
}
}
],
onResize : function() {
$('#singlechoice_datagrid').datagrid('fixDetailRowHeight',index);
},
onLoadSuccess : function() {
setTimeout(function() {
$('#singlechoice_datagrid').datagrid('fixDetailRowHeight',index);
}, 0);
}
});
$('#singlechoice_datagrid').datagrid('fixDetailRowHeight', index);
}

问题来了,依照上面的操作,当我打开一个外部编辑dialog,填写完数据并提交后,如何刷新子网格呢?这时候我们只需要在外部定义一个变量,在每次打开窗口前都把此次的子网格容器赋给它,即可达到我们刷新的目的:

    var myddv; //用于储存子网格容器

编辑弹窗代码:

    $('#btn1').click(function(){
if($('#myform').form('validate')){
$.ajax({
type:'post', //提交方式
url:'optionssave', //请求地址
cache:false, //清除缓存
data:$('#myform').serialize(), //序列化表单
//dataType:'json', //返回数据格式
success:function(result){
if(result=='no'){
$.messager.alert('提示','单选题只能有一个正确答案!');
return;
}
//1.关闭窗口
$('#mydialog').dialog('close');
myddv.datagrid('reload');
}
});
}else{
$.messager.show({
title:'提示信息!',
msg:'数据验证不通过,不能保存!'
})
}
});

以上。

Easyui datagrid扩展子网格detailview增删改查详解的更多相关文章

  1. 【ASP.NET MVC】jqGrid 增删改查详解

    1   概述 本篇文章主要是关于JqGrid的,主要功能包括使用JqGrid增删查改,导入导出,废话不多说,直接进入正题. 2   Demo相关 2.1   Demo展示 第一部分 第二部分 2.2 ...

  2. iOS CoreData 增删改查详解

    最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然S ...

  3. C# 数据操作系列 - 15 SqlSugar 增删改查详解

    0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况.而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的 ...

  4. sed 增删改查详解以及 sed -i原理

    我为什么要详细记录sed命令:     sed 擅长取行.工作中三剑客使用频率最高,本篇文章将对sed命令常用的 增,删,改,查 进行详细讲解,以备以后工作中遗忘了查询,sed命令是作为运维人员来说, ...

  5. Yii2.0数据库操作增删改查详解

    1.简单查询: one(): 根据查询结果返回查询的第一条记录. all(): 根据查询结果返回所有记录. count(): 返回记录的数量. sum(): 返回指定列的总数. average():  ...

  6. java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,

    1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...

  7. jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)

    jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...

  8. 【MVC+EasyUI实例】对数据网格的增删改查(下)

    前言 继上文对网格加载数据,本文主要阐述对数据增删改的实现. 一.js代码 function Add() { $("#dlg").dialog('open'); $("# ...

  9. 【MVC+EasyUI实例】对数据网格的增删改查(上)

    前言 此案例是针对之前做的一个小例子的后台框架的修改,从以前的三层框架改为现在的MVC框架,也是做了一次MVC和EasyUI的结合,分为2篇文章来阐述. 界面如下: 点击"添加"按 ...

随机推荐

  1. .net post请求wcf

    class Program { static void Main(string[] args) { }); var r = HttpHelper.PostRequest("http://lo ...

  2. Redis哨兵模式大key优化

    目前,Redis哨兵模式,内存资源有限,有很多key大于500M,性能待优化.需要迁移至Redis-cluster集群中.        涉及到的key如下: 0,hash,duser_record, ...

  3. SQLi-LABS Page-4 (Challenges) Less-54-Less-65

    Less-54 union - 1 http://10.10.202.112/sqli/Less-54?id=-1' union select 1,2,group_concat(table_name) ...

  4. 顺F速运,你被爱加M坑了

    - 加密情况 首先我们到顺F官网,下载顺F速运APP,当然,是Android版,毕竟穷. 接下来,得看看怎么用,当然顺便用Wireshark抓包,点那个显眼的立即登录按钮. 使用手机号登录,随便敲敲, ...

  5. Linux中vim编辑命令

    vim 功能 : 一个强大的文本编辑器   语法格式 :vim [ 选项 ] / 路径 / 文本文件名 命令格式: vi [ 选项 ] [ 文件名 ]   +num 打开某个文件直接跳转到 num 行 ...

  6. WC 个人项目 ( node.js 实现 )

    基于 node.js 的 wordCounter 个人项目 GitHub 项目地址:https://github.com/KofeChen/node.js-WordCounter 实现功能: 能够匹配 ...

  7. 软工个人项目(Java实现)

    一. Github地址: https://github.com/RuiBingo/PersonalWork 二.个人PSP表格: PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Plan ...

  8. [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法

    源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...

  9. Java学习笔记(4)--- 变量类型,修饰符

    1.变量类型: a.定义: 和C++差不多,就是: type identifier [ = value][, identifier [= value] ...]: type为Java数据类型.iden ...

  10. TensorFlow Federated:基于分散式数据的机器学习

    https://www.tensorflow.org/federated/ TensorFlow Federated (TFF) 是一个开源框架,用于对分散式数据进行机器学习和其他计算.我们开发 TF ...