效果图:

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. WCF实现客户端自动更新

    IServiceUpdate using System.IO; using System.ServiceModel; using System.ServiceModel.Web; namespace ...

  2. Sqlserver推荐参数配置及日志收缩问题

    最近不定期有项目反馈周期性的系统整体性能下降情况,经分析存在因数据库环境.参数配置不佳造成的.比如,sqlserver日志文件缺省按百分比增长,当日志文件已经比较大时,每次扩展时耗时较长,系统整体卡顿 ...

  3. [转]没有了SA密码,无法Windows集成身份登录,DBA怎么办?

    没有了SA密码,无法Windows集成身份登录,DBA怎么办?  原文:http://www.cnblogs.com/i6first/p/3512779.html 一同事反馈SQL无法正常登录了,以前 ...

  4. php发送post包

    class Request{ public static function post($url, $post_data = '', $timeout = 5){//curl $ch = curl_in ...

  5. 一、Spring——IoC

    IOC概述 Spring中IOC的概念,控制反转概念其实包含两个层面的意思,"控制"是接口实现类的选择控制权:而"反转"是指这种选择控制权从调用者转移到外部第三 ...

  6. 使用nodejs防止csurf攻击的方法

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  7. 为什么学习Ruby On Rails:

    简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...

  8. struts1 Demo

    每次都会忘记一些东西,反复查找原因,其实struts1很简单,可是不去巩固也很容易忘记并且犯错误.这是一个最简单的登录Demo. 1.建立web工程,引入struts1.2包 2.建package:a ...

  9. [jQuery]html(),text(),val()方法的区别

    1.HTML html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容.这个函数不能用于XML文档.但 ...

  10. ADF_ManagedBean的概念和管理(概念)

    20150623 Created By BaoXinjian