效果图:

Jtable的子表用法:

_$masterTable.jtable({
title: app.localize('PharmacyInventory'),
openChildAsAccordion: true,
paging: true,
actions: {
listAction: {
method: _masterService.getItems
}
}, fields: {
id: {
key: true,
list: false
},
//...
details: {
title: '',
width: '3%',
sorting: false,
edit: false,
create: false,
display: function (data) {
var master = data.record;
var $span = $('<span></span>');
var $btnView = $('<button class="btn btn-default btn-xs" title="' + app.localize('Details') + '"><i class="fa fa-align-justify"></i></button>')
.appendTo($span)
.click(function () {
$('#MasterTable').jtable('openChildTable',
$btnView.closest('tr'),
{
title: master.medicineName + "(" + master.pinYin + ")",
actions: {
listAction: {
method: _masterService.getSubItems
}
},
fields: {
productionDate:
{
title: app.localize('ProductionDate'),
width: '10%',
display: function (data) {
var $span = $('<span></span>');
$span.append(moment(data.record.productionDate).format('YYYY-MM-DD')+ " &nbsp; ");
return $span;
}
},
period:
{
title: app.localize('Period'),
width: '10%'
},
effectiveDate: {
title: app.localize('EffectiveDate'),
width: '15%',
display: function (data) {
var $span = $('<span></span>');
$span.append('<label class="font-red bold">' + moment(data.record.effectiveDate).format('YYYY-MM-DD') + "</label> &nbsp; ");
return $span;
}
},
batchNo: {
title: app.localize('BatchNo'),
width: '10%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.batchNo + " &nbsp; ");
return $span;
}
},
stockBalance: {
title: app.localize('PharmacyInventory'),
width: '10%',
display: function (data) {
var $span = $('<span></span>');
$span.append('<label class="font-red bold">' + data.record.stockBalance + "</label> &nbsp; ");
return $span;
}
}
}
}, function (data) {
data.childTable.jtable('load', {
sourceId: master.medicineID
});
});
});
return $span;
}
},
medicineName: {
title: app.localize('MedicineName'),
width: '15%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.medicineName + "(" + data.record.pinYin + ")" + " &nbsp; ");
return $span;
}
},
category: {
title: app.localize('Category'),
width: '10%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.categoryText + " &nbsp; ");
return $span;
}
},
dosage: {
title: app.localize('Dosage'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.dosageText + " &nbsp; ");
return $span;
}
},
spec: {
title: app.localize('Spec'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.specText + " &nbsp; ");
return $span;
}
},
minPacking: {
title: app.localize('MinPacking'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.minPackingText + " &nbsp; ");
return $span;
}
},
unit: {
title: app.localize('Unit'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.unitText + " &nbsp; ");
return $span;
}
},
limitation: {
title: app.localize('Limitation'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.limitation + " &nbsp; ");
return $span;
}
},
usage: {
title: app.localize('Usage'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.usageText + " &nbsp; ");
return $span;
}
},
route: {
title: app.localize('Route'),
width: '7%',
display: function (data) {
var $span = $('<span></span>');
$span.append(data.record.routeText + " &nbsp; ");
return $span;
}
},
stockBalance: {
title: app.localize('PharmacyInventory'),
width: '10%',
display: function (data) {
var $span = $('<span></span>');
$span.append('<label class="font-red bold">' + data.record.stockBalance + "</label> &nbsp; ");
return $span;
}
}
}
});

参考链接:http://www.codeproject.com/Articles/277576/AJAX-based-CRUD-tables-using-ASP-NET-MVC-and-jTa

ASP.NET ZERO 学习 JTable的ChildTable用法的更多相关文章

  1. ASP.NET ZERO 学习 JTable的使用子表闭合功能

    双击子表自动判定开闭功能 //CHILD TABLE DEFINITION FOR "PHONE NUMBERS" Phones: { title: '', width: '5%' ...

  2. ASP.NET ZERO 学习 JTable的使用

    View信息: @using Abp.Web.Mvc.Extensions @using MedicalSystem.Authorization @using MedicalSystem.Web.Na ...

  3. ASP.NET MVC学习之Ajax(完结)

    一.前言 通过上面的一番学习,大家一定收获不少.但是总归会有一个结束的时候,但是这个结束也意味着新的开始. 如果你是从事ASP.NET开发,并且也使用了第三方控件,那么一定会觉得ASP.NET开发aj ...

  4. ASP.NET中的ExecuteNonQuery()方法的用法

    下面我将详细讲解在机房收费系统D层中如何对数据库的增加.删除.修改,最后再来总结一下 ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法: 一.增.删 ...

  5. ASP.NET Core学习指导

    ASP.NET Core 学习指导 "工欲善其事必先利其器".我们在做事情之前,总应该做好充分的准备,熟悉自己的工具.就像玩游戏有一些最低配置一样,学习一个新的框架,也需要有一些基 ...

  6. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  7. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  8. ASP.NET MVC学习之视图篇(2)

    继ASP.NET MVC学习之视图(1)学习 4.HTML辅助器 虽然在ASP.NET MVC中我们已经摆脱了ASP.NET的控件,但是对于页面中需要循环标签的情况依然还是存在,可能很多人认为用for ...

  9. ASP.NET MVC学习之过滤器篇(2)

    下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成 ...

随机推荐

  1. TIOBE Index for December 2015(转载)

    There is hardly any doubt about it, Java will become TIOBE's programming language of the year 2015. ...

  2. ClientAbortException 异常解决办法

    http://blog.sina.com.cn/s/blog_43eb83b90102ds8w.html ClientAbortException 异常解决办法 当我们用Servlet导出图片,或用J ...

  3. 【uTenux实验】内存池管理(固定内存池和可变内存池)

    1.固定内存池管理实验 内存管理是操作系统的一个基础功能.uTenux的内存池管理函数提供了基于软件的内存池管理和内存块分配管理.uTenux的内存池有固定大小的内存池和大小可变的内存池之分,它们被看 ...

  4. ADF_Controller系列2_绑定TasksFlow、Region和Routers(Part2)

    2015-02-14 Created By BaoXinjian

  5. SSH登陆 Write failed: Broken pipe解决办法

    新装的一台linux 6.4主机在所有参数调优以后,运行起来要跑的程序后.再通过su - www时,提示如下: su: cannot set user id: Resource temporarily ...

  6. boost::asio::socket tcp 连接 在程序结束时崩溃。

    刚开始的时候一直不知道怎么回事,不过幸好我有在每个class 的析构时都打印一条信息. 这个时候发现我的一个tcp_connection (就是自定义的一个连接类) 在最后才被析构. 所以感觉这里可能 ...

  7. webpy分页类 + 上传类

    webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,d ...

  8. css学习笔记(6)

    +++++++++++++++++ CSS HACK+++++++++++++++++IE6.0 能识别 _background:#ff00ff; *background:#ff00ff; +back ...

  9. repeat语句

    一.repeat语句格式repeat语句用于"重复执行循环体,直到指定的条件为真时为止" repeat语句格式:repeat  语句1;  语句2;  --  语句n;until ...

  10. 剑指Offer:面试题28——字符串的排列(java实现)(待序)

    问题描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 结果请按字母 ...