效果图:

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. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  2. IOS开发-项目实战-点赞功能的实现

    实现思路: 1.每一条新闻就是一个cell,在cell上添加点赞按钮. 2.让cell的控制器成为自定义cell的代理,将点击了哪一个cell放在代理方法中传出去. 3.并将这条新闻的ID和当前用户的 ...

  3. 导入Eclipse工程 到 Android Studio

    一.从Eclipse导入工程到Android Studio 根据官方的介绍,Android Studio可以兼容Eclipse的现有工程,但需要做一些操作: 首先升级ADT到最新版本,目前为版本号为2 ...

  4. Codeforces 719E [斐波那契区间操作][矩阵快速幂][线段树区间更新]

    /* 题意:给定一个长度为n的序列a. 两种操作: 1.给定区间l r 加上某个数x. 2.查询区间l r sigma(fib(ai)) fib代表斐波那契数列. 思路: 1.矩阵操作,由矩阵快速幂求 ...

  5. Python基础篇【第2篇】: Python自定义函数

    Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print ...

  6. Android:去掉默认的标题bar

    要使用自己定义的bar,只需要在layout文件中添加:<include layout="@layout/actionbar" />;当然你需要新建一个actionba ...

  7. 关于Excel导入导出的用例设计

    目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...

  8. WinCE系统深度定制汇总

    WinCE应用程序崩溃提示框的处理 WinCE6.0多国语言软键盘 定制WinCE6.0标准界面的一种方法 如何禁用WinCE下的沙漏图标 Silent RNAApp.exe for WinCE6.0 ...

  9. php 向asmx发送请求 || php 发送xml请求, 以及处理返回的xml结果

    var $live_url = 'https://processing.ukash.com/RPPGateway/process.asmx'; $source = array( 'SecurityTo ...

  10. android menu的问题

    1.简单使用 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.me ...