1. <img class="arrow-down" src="https://csdnimg.cn/release/phoenix/images/arrow_triangle _down.jpg" style="display:inline;">
  2. <img class="arrow-up" src="https://csdnimg.cn/release/phoenix/images/arrow_triangle_up.jpg" style="display:none;">
  3. <div class="subItem">
  4. <ul class="subItem_l" id="top_7355084"></ul>
  5. </div>
  6. </label>
  7. </div>
  8. </div>
  9. <div class="bog_copyright">
  10. <p class="copyright_p">
  11. </div>
  12. <div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="https://blog.csdn.net/wangmei4968/article/details/48437175" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" onclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t0">前言</a></li><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t1">版本一</a></li><ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t2">样式</a></li><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t3">代码</a></li></ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t4"></a></li><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t5">版本二</a></li><ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t6">样式</a></li><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t7">代码</a></li></ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t8">版本三</a></li><ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t9">样式 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </a></li><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t10">代码</a></li></ol><li><a href="https://blog.csdn.net/wangmei4968/article/details/48437175#t11">总结</a></li></ol></div><div style="clear:both"></div><div id="article_content" class="article_content csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post" style="overflow: hidden;">
  13. <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/production/htmledit_views-1f9cf0a071.css">
  14. <div class="htmledit_views">

前言

bootstrap的表格样式,有类似EasyUI的表格,也有卡片式表格,放到移动端显示,各有千秋。但是BootStrap自带的表格是没有操作列的,网上的资源不少,但是都是比较单一、零碎,JS、CSS也经常给的不全,自己经过大概一个月左右的时间,把表格封装了一下,希望能分享给大家。

表格封装了3个版本,接下来给大家展示一下样式和代码。

版本一

1. 样式

表格布局:

添加:添加一行新的空白代码

修改:选中可修改的列,点击需要修改的单元格,即可变成可编辑的状态。

2.代码

  1. @using DatatableDemo.Models
  2. @using ITOO.FreshNewReport.ViewModel
  3. @{
  4. Layout = "~/Views/Shared/_Layout.cshtml";
  5. }
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9. <title>Bootstrap 实例 - 表格</title>
  10. <link href="../../BootStrap/StuPersonInfo/bootstrap.min.css" rel="stylesheet" />
  11. <script src="../../BootStrap/StuPersonInfo/bootstrap.min.js"></script>
  12. <script src="../../BootStrap/StuPersonInfo/jquery.min.js"></script>
  13. @*表格JS*@
  14. <link href="../../BootStrap/bootstrap-3.3.5-dist/css/bootstrap.css" rel="stylesheet" />
  15. <meta name="viewport" content="width=device-wdith,initia-scale=1.0">
  16. @*动态添加表格*@
  17. <meta charset="utf-8">
  18. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  19. <link href="../../BootStrap/datagrid/css/bootstrap-table.min.css" rel="stylesheet" />
  20. <link href="../../BootStrap/datagrid/css/bootstrap.min.css" rel="stylesheet" />
  21. <script src="../../BootStrap/datagrid/js/jquery.min.js"></script>
  22. <script src="../../BootStrap/datagrid/js/jquery.base64.js"></script>
  23. <script src="../../BootStrap/datagrid/js/bootstrap-table.js"></script>
  24. <script src="../../BootStrap/datagrid/js/bootstrap-table-export.js"></script>
  25. @*添加批量删除*@
  26. <meta charset="utf-8">
  27. <script type="text/javascript" src="../../BootStrap/datagrid/js/jquery.min.js"></script>
  28. <script type="text/javascript">
  29. $(document).ready(function () {
  30. $("#btnDel").click(function () {
  31. $(":checked").parent().parent().fadeOut("show"); //隐藏所有被选中的input元素
  32. //parent() 获得当前匹配元素集合中每个元素的父元素,
  33. })
  34. $("tr").mousemove(function () {
  35. $(this).css("background", "#F0F0F0");  //鼠标经过背景颜色变为灰色
  36. })
  37. $("tr").mouseout(function () {
  38. $(this).css("background", "#fff");  //离开后背景颜色回复白色
  39. })
  40. //全选
  41. $("#checkAll").click(function () {
  42. if ($("#checkAll").attr("checked") == false) {
  43. $("input[name='checkbox']").each(function () {
  44. $(this).attr("checked", true);
  45. });
  46. } else {
  47. $("input[name='checkbox']").each(function () {
  48. $(this).attr("checked", false);
  49. });
  50. }
  51. });
  52. });
  53. </script>
  54. @*添加一行新表格数据*@
  55. <script>
  56. function append() {
  57. var strAppend = '<tr style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;"><td ><input type="checkbox" value="" editable="false" name="checkbox"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><tr>';
  58. $("#AddFamily tbody ").append(strAppend).editableTableWidget();
  59. }
  60. </script>
  61. @*表格样式CSS*@
  62. <style>
  63. table {
  64. border-collapse: collapse;
  65. border: 1px solid #FFFFFF;
  66. }
  67. table td {
  68. text-align: center;
  69. height: 30px;
  70. font-size: 12px;
  71. line-height: 30px;
  72. border: 1px solid #efecec;
  73. }
  74. </style>
  75. @*添加批量删除*@
  76. <script src="../../JS/TableJs.js"></script>
  77. </head>
  78. <body>
  79. <script src="../../BootStrap/FamilyJS.js"></script>
  80. @*按钮*@
  81. <div class="heading">
  82. @*添加按钮*@
  83. <button id="build" type="button" class="btn  btn-success" data-toggle="modal" data-target="" onclick="append()">
  84. <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>添加
  85. </button>
  86. @*修改按钮*@
  87. <button id="btnEdit" type="button" class="btn   btn-warning">
  88. <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>修改
  89. </button>
  90. @*删除按钮---无弹出框*@
  91. <button id="btnDel" type="button" class="btn  btn-danger" data-toggle="modal" data-target="#DeleteForm" onclick="">
  92. <span class="glyphicon glyphicon-minus" aria-hidden="true"></span>删除
  93. </button>
  94. </div>
  95. @*表格*@
  96. <div class="widget-content padded clearfix">
  97. <table id="AddFamily" class="table table-bordered table-striped" width="1000px" border="0" cellspacing="0" cellpadding="0" style="margin: 0 auto">
  98. <thead>
  99. <th class="check-header hidden-xs">
  100. <input id="checkAll" name="checkAll" type="checkbox">
  101. <th>姓名</th>
  102. <th>称谓 </th>
  103. <th>年龄 </th>
  104. <th>政治面貌</th>
  105. <th>电话号码 </th>
  106. <th>工作单位</th>
  107. <th>家庭住址</th>
  108. </thead>
  109. <tbody id="mainbody">
  110. @*从数据库读取的数据,遍历ViewModel里面的字段并赋值*@
  111. @foreach (FamilyInfoViewModel enStuFam in ViewData["DataList"] as List<FamilyInfoViewModel>)
  112. {
  113. <tr>
  114. <td>
  115. <input name="checkbox" type="checkbox" id="1">
  116. </td>
  117. <td data-field="Name">@enStuFam.Name </td>
  118. <td data-field="RelationShip">@enStuFam.RelationShip</td>
  119. <td data-field="Age">@enStuFam.Age</td>
  120. <td>@enStuFam.PoliticalStatus</td>
  121. <td>@enStuFam.TelNum </td>
  122. <td>@enStuFam.WorkUnit</td>
  123. <td>@enStuFam.Address </td>
  124. </tr>
  125. }
  126. </tbody>
  127. </table>
  128. </div>
  129. <link href="../../BootStrap/jquery.bdt.css" rel="stylesheet" />
  130. @*创建表格*@
  131. <script>
  132. //绑定编辑、回车事件
  133. $(function () {
  134. //   $('#build').click(build);//实现创建表格
  135. $('#btnEdit').click(edit);
  136. $('#cells, #rows').keyup(function (e) {
  137. if (e.keyCode === 13) {
  138. //添加存入数据库的代码
  139. }
  140. });
  141. });
  142. //将表格转成可编辑的表格
  143. function edit(index) {
  144. //  $('#table').editableTableWidget();--效果是单击编辑按钮后,所有的都可以编辑
  145. // $(":checked").editableTableWidget();
  146. $(":checked").parent().parent().editableTableWidget();//整行的可以编辑
  147. }
  148. //转成可编辑的表格
  149. /*global $, window*/
  150. $.fn.editableTableWidget = function (options) {
  151. 'use strict';
  152. return $(this).each(function () {
  153. var buildDefaultOptions = function () {
  154. var opts = $.extend({}, $.fn.editableTableWidget.defaultOptions);
  155. opts.editor = opts.editor.clone();
  156. return opts;
  157. },
  158. activeOptions = $.extend(buildDefaultOptions(), options),
  159. ARROW_LEFT = 37, ARROW_UP = 38, ARROW_RIGHT = 39, ARROW_DOWN = 40, ENTER = 13, ESC = 27, TAB = 9,
  160. element = $(this),
  161. editor = activeOptions.editor.css('position', 'absolute').hide().appendTo(element.parent()),
  162. active,
  163. showEditor = function (select) {
  164. active = element.find('td:focus');
  165. if (active.length) {
  166. editor.val(active.text())
  167. .removeClass('error')
  168. .show()
  169. .offset(active.offset())
  170. .css(active.css(activeOptions.cloneProperties))
  171. .width(active.width())
  172. .height(active.height())
  173. .focus();
  174. if (select) {
  175. editor.select();
  176. }
  177. }
  178. },
  179. setActiveText = function () {
  180. var text = editor.val(),
  181. evt = $.Event('change'),
  182. originalContent;
  183. if (active.text() === text || editor.hasClass('error')) {
  184. return true;
  185. }
  186. originalContent = active.html();
  187. active.text(text).trigger(evt, text);
  188. if (evt.result === false) {
  189. active.html(originalContent);
  190. }
  191. },
  192. movement = function (element, keycode) {
  193. if (keycode === ARROW_RIGHT) {
  194. return element.next('td');
  195. } else if (keycode === ARROW_LEFT) {
  196. return element.prev('td');
  197. } else if (keycode === ARROW_UP) {
  198. return element.parent().prev().children().eq(element.index());
  199. } else if (keycode === ARROW_DOWN) {
  200. return element.parent().next().children().eq(element.index());
  201. }
  202. return [];
  203. };
  204. editor.blur(function () {
  205. setActiveText();
  206. editor.hide();
  207. }).keydown(function (e) {
  208. if (e.which === ENTER) {
  209. setActiveText();
  210. editor.hide();
  211. active.focus();
  212. e.preventDefault();
  213. e.stopPropagation();
  214. } else if (e.which === ESC) {
  215. editor.val(active.text());
  216. e.preventDefault();
  217. e.stopPropagation();
  218. editor.hide();
  219. active.focus();
  220. } else if (e.which === TAB) {
  221. active.focus();
  222. } else if (this.selectionEnd - this.selectionStart === this.value.length) {
  223. var possibleMove = movement(active, e.which);
  224. if (possibleMove.length > 0) {
  225. possibleMove.focus();
  226. e.preventDefault();
  227. e.stopPropagation();
  228. }
  229. }
  230. })
  231. .on('input paste', function () {
  232. var evt = $.Event('validate');
  233. active.trigger(evt, editor.val());
  234. if (evt.result === false) {
  235. editor.addClass('error');
  236. } else {
  237. editor.removeClass('error');
  238. }
  239. });
  240. element.on('click keypress dblclick', showEditor)
  241. .css('cursor', 'pointer')
  242. .keydown(function (e) {
  243. var prevent = true,
  244. possibleMove = movement($(e.target), e.which);
  245. if (possibleMove.length > 0) {
  246. possibleMove.focus();
  247. } else if (e.which === ENTER) {
  248. showEditor(false);
  249. } else if (e.which === 17 || e.which === 91 || e.which === 93) {
  250. showEditor(true);
  251. prevent = false;
  252. } else {
  253. prevent = false;
  254. }
  255. if (prevent) {
  256. e.stopPropagation();
  257. e.preventDefault();
  258. }
  259. });
  260. element.find('td').prop('tabindex', 1);
  261. $(window).on('resize', function () {
  262. if (editor.is(':visible')) {
  263. editor.offset(active.offset())
  264. .width(active.width())
  265. .height(active.height());
  266. }
  267. });
  268. });
  269. };
  270. $.fn.editableTableWidget.defaultOptions = {
  271. cloneProperties: ['padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right',
  272. 'text-align', 'font', 'font-size', 'font-family', 'font-weight',
  273. 'border', 'border-top', 'border-bottom', 'border-left', 'border-right'],
  274. editor: $('<input>')
  275. };
  276. </script>
  277. </body>
  278. </html>
  1. @using DatatableDemo.Models
  2. @using ITOO.FreshNewReport.ViewModel
  3. @{
  4. Layout = "~/Views/Shared/_Layout.cshtml";
  5.  
  6. }
  7.  
  8. <!DOCTYPE html>
  9.  
  10. <html>

  11. <head>

  12. <title>Bootstrap 实例 - 表格</title>

  13. <link href="../../BootStrap/StuPersonInfo/bootstrap.min.css" rel="stylesheet" />

  14. <script src="../../BootStrap/StuPersonInfo/bootstrap.min.js"></script>

  15. <script src="../../BootStrap/StuPersonInfo/jquery.min.js"></script>
  16. @*表格JS*@
  17. &lt;link href="../../BootStrap/bootstrap-3.3.5-dist/css/bootstrap.css" rel="stylesheet" /&gt;
  18. &lt;meta name="viewport" content="width=device-wdith,initia-scale=1.0"&gt;
  19. @*动态添加表格*@
  20. &lt;meta charset="utf-8"&gt;
  21. &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
  22. &lt;link href="../../BootStrap/datagrid/css/bootstrap-table.min.css" rel="stylesheet" /&gt;
  23. &lt;link href="../../BootStrap/datagrid/css/bootstrap.min.css" rel="stylesheet" /&gt;
  24. &lt;script src="../../BootStrap/datagrid/js/jquery.min.js"&gt;&lt;/script&gt;
  25. &lt;script src="../../BootStrap/datagrid/js/jquery.base64.js"&gt;&lt;/script&gt;
  26. &lt;script src="../../BootStrap/datagrid/js/bootstrap-table.js"&gt;&lt;/script&gt;
  27. &lt;script src="../../BootStrap/datagrid/js/bootstrap-table-export.js"&gt;&lt;/script&gt;
  28. @*添加批量删除*@
  29. &lt;meta charset="utf-8"&gt;
  30. &lt;script type="text/javascript" src="../../BootStrap/datagrid/js/jquery.min.js"&gt;&lt;/script&gt;
  31. &lt;script type="text/javascript"&gt;
  32.     $(document).ready(function () {
  33.         $("#btnDel").click(function () {
  34.             $(":checked").parent().parent().fadeOut("show"); //隐藏所有被选中的input元素
  35.             //parent() 获得当前匹配元素集合中每个元素的父元素,
  36.         })
  37.         $("tr").mousemove(function () {
  38.             $(this).css("background", "#F0F0F0");  //鼠标经过背景颜色变为灰色
  39.         })
  40.         $("tr").mouseout(function () {
  41.             $(this).css("background", "#fff");  //离开后背景颜色回复白色
  42.         })
  43.         //全选
  44.         $("#checkAll").click(function () {
  45.             if ($("#checkAll").attr("checked") == false) {
  46.                 $("input[name='checkbox']").each(function () {
  47.                     $(this).attr("checked", true);
  48.                 });
  49.             } else {
  50.                 $("input[name='checkbox']").each(function () {
  51.                     $(this).attr("checked", false);
  52.                 });
  53.             }
  54.         });
  55.     });
  56. &lt;/script&gt;
  57. @*添加一行新表格数据*@
  58. &lt;script&gt;
  59.     function append() {
  60.         var strAppend = '&lt;tr style="background: rgb(255, 255, 255) none repeat scroll 0% 0%;"&gt;&lt;td &gt;&lt;input type="checkbox" value="" editable="false" name="checkbox"&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;';
  61.         $("#AddFamily tbody ").append(strAppend).editableTableWidget();
  62.     }
  63. &lt;/script&gt;
  64. @*表格样式CSS*@
  65. &lt;style&gt;
  66.     table {
  67.         border-collapse: collapse;
  68.         border: 1px solid #FFFFFF;
  69.     }
  70.         table td {
  71.             text-align: center;
  72.             height: 30px;
  73.             font-size: 12px;
  74.             line-height: 30px;
  75.             border: 1px solid #efecec;
  76.         }
  77. &lt;/style&gt;
  78. @*添加批量删除*@
  79. &lt;script src="../../JS/TableJs.js"&gt;&lt;/script&gt;
  80.  
  81. </head>

  82. <body>

  83. &lt;script src="../../BootStrap/FamilyJS.js"&gt;&lt;/script&gt;
  84. @*按钮*@
  85. &lt;div class="heading"&gt;
  86.     @*添加按钮*@
  87.     &lt;button id="build" type="button" class="btn  btn-success" data-toggle="modal" data-target="" onclick="append()"&gt;
  88.         &lt;span class="glyphicon glyphicon-plus" aria-hidden="true"&gt;&lt;/span&gt;添加
  89.     &lt;/button&gt;
  90.     @*修改按钮*@
  91.     &lt;button id="btnEdit" type="button" class="btn   btn-warning"&gt;
  92.         &lt;span class="glyphicon glyphicon-edit" aria-hidden="true"&gt;&lt;/span&gt;修改
  93.     &lt;/button&gt;
  94.     @*删除按钮---无弹出框*@
  95.     &lt;button id="btnDel" type="button" class="btn  btn-danger" data-toggle="modal" data-target="#DeleteForm" onclick=""&gt;
  96.         &lt;span class="glyphicon glyphicon-minus" aria-hidden="true"&gt;&lt;/span&gt;删除
  97.     &lt;/button&gt;
  98. &lt;/div&gt;
  99. @*表格*@
  100. &lt;div class="widget-content padded clearfix"&gt;
  101.     &lt;table id="AddFamily" class="table table-bordered table-striped" width="1000px" border="0" cellspacing="0" cellpadding="0" style="margin: 0 auto"&gt;
  102.         &lt;thead&gt;
  103.             &lt;th class="check-header hidden-xs"&gt;
  104.                 &lt;input id="checkAll" name="checkAll" type="checkbox"&gt;
  105.             &lt;th&gt;姓名&lt;/th&gt;
  106.             &lt;th&gt;称谓 &lt;/th&gt;
  107.             &lt;th&gt;年龄 &lt;/th&gt;
  108.             &lt;th&gt;政治面貌&lt;/th&gt;
  109.             &lt;th&gt;电话号码 &lt;/th&gt;
  110.             &lt;th&gt;工作单位&lt;/th&gt;
  111.             &lt;th&gt;家庭住址&lt;/th&gt;
  112.         &lt;/thead&gt;
  113.         &lt;tbody id="mainbody"&gt;
  114.             @*从数据库读取的数据,遍历ViewModel里面的字段并赋值*@
  115.             @foreach (FamilyInfoViewModel enStuFam in ViewData["DataList"] as List&lt;FamilyInfoViewModel&gt;)
  116.             {
  117.                 &lt;tr&gt;
  118.                     &lt;td&gt;
  119.                         &lt;input name="checkbox" type="checkbox" id="1"&gt;
  120.                     &lt;/td&gt;
  121.                     &lt;td data-field="Name"&gt;@enStuFam.Name &lt;/td&gt;
  122.                     &lt;td data-field="RelationShip"&gt;@enStuFam.RelationShip&lt;/td&gt;
  123.                     &lt;td data-field="Age"&gt;@enStuFam.Age&lt;/td&gt;
  124.                     &lt;td&gt;@enStuFam.PoliticalStatus&lt;/td&gt;
  125.                     &lt;td&gt;@enStuFam.TelNum &lt;/td&gt;
  126.                     &lt;td&gt;@enStuFam.WorkUnit&lt;/td&gt;
  127.                     &lt;td&gt;@enStuFam.Address &lt;/td&gt;
  128.                 &lt;/tr&gt;
  129.             }
  130.         &lt;/tbody&gt;
  131.     &lt;/table&gt;
  132. &lt;/div&gt;
  133. &lt;link href="../../BootStrap/jquery.bdt.css" rel="stylesheet" /&gt;
  134. @*创建表格*@
  135. &lt;script&gt;
  136.     //绑定编辑、回车事件
  137.     $(function () {
  138.         //   $('#build').click(build);//实现创建表格
  139.         $('#btnEdit').click(edit);
  140.         $('#cells, #rows').keyup(function (e) {
  141.             if (e.keyCode === 13) {
  142.               //添加存入数据库的代码
  143.             }
  144.         });
  145.     });
  146.     //将表格转成可编辑的表格
  147.     function edit(index) {
  148.         //  $('#table').editableTableWidget();--效果是单击编辑按钮后,所有的都可以编辑
  149.         // $(":checked").editableTableWidget();
  150.         $(":checked").parent().parent().editableTableWidget();//整行的可以编辑
  151.     }
  152.     //转成可编辑的表格
  153.     /*global $, window*/
  154.     $.fn.editableTableWidget = function (options) {
  155.         'use strict';
  156.         return $(this).each(function () {
  157.             var buildDefaultOptions = function () {
  158.                 var opts = $.extend({}, $.fn.editableTableWidget.defaultOptions);
  159.                 opts.editor = opts.editor.clone();
  160.                 return opts;
  161.             },
  162.                 activeOptions = $.extend(buildDefaultOptions(), options),
  163.                 ARROW_LEFT = 37, ARROW_UP = 38, ARROW_RIGHT = 39, ARROW_DOWN = 40, ENTER = 13, ESC = 27, TAB = 9,
  164.                 element = $(this),
  165.                 editor = activeOptions.editor.css('position', 'absolute').hide().appendTo(element.parent()),
  166.                 active,
  167.                 showEditor = function (select) {
  168.                     active = element.find('td:focus');
  169.                     if (active.length) {
  170.                         editor.val(active.text())
  171.                             .removeClass('error')
  172.                             .show()
  173.                             .offset(active.offset())
  174.                             .css(active.css(activeOptions.cloneProperties))
  175.                             .width(active.width())
  176.                             .height(active.height())
  177.                             .focus();
  178.                         if (select) {
  179.                             editor.select();
  180.                         }
  181.                     }
  182.                 },
  183.                 setActiveText = function () {
  184.                     var text = editor.val(),
  185.                         evt = $.Event('change'),
  186.                         originalContent;
  187.                     if (active.text() === text || editor.hasClass('error')) {
  188.                         return true;
  189.                     }
  190.                     originalContent = active.html();
  191.                     active.text(text).trigger(evt, text);
  192.                     if (evt.result === false) {
  193.                         active.html(originalContent);
  194.                     }
  195.                 },
  196.                 movement = function (element, keycode) {
  197.                     if (keycode === ARROW_RIGHT) {
  198.                         return element.next('td');
  199.                     } else if (keycode === ARROW_LEFT) {
  200.                         return element.prev('td');
  201.                     } else if (keycode === ARROW_UP) {
  202.                         return element.parent().prev().children().eq(element.index());
  203.                     } else if (keycode === ARROW_DOWN) {
  204.                         return element.parent().next().children().eq(element.index());
  205.                     }
  206.                     return [];
  207.                 };
  208.             editor.blur(function () {
  209.                 setActiveText();
  210.                 editor.hide();
  211.             }).keydown(function (e) {
  212.                 if (e.which === ENTER) {
  213.                     setActiveText();
  214.                     editor.hide();
  215.                     active.focus();
  216.                     e.preventDefault();
  217.                     e.stopPropagation();
  218.                 } else if (e.which === ESC) {
  219.                     editor.val(active.text());
  220.                     e.preventDefault();
  221.                     e.stopPropagation();
  222.                     editor.hide();
  223.                     active.focus();
  224.                 } else if (e.which === TAB) {
  225.                     active.focus();
  226.                 } else if (this.selectionEnd - this.selectionStart === this.value.length) {
  227.                     var possibleMove = movement(active, e.which);
  228.                     if (possibleMove.length &gt; 0) {
  229.                         possibleMove.focus();
  230.                         e.preventDefault();
  231.                         e.stopPropagation();
  232.                     }
  233.                 }
  234.             })
  235.                 .on('input paste', function () {
  236.                     var evt = $.Event('validate');
  237.                     active.trigger(evt, editor.val());
  238.                     if (evt.result === false) {
  239.                         editor.addClass('error');
  240.                     } else {
  241.                         editor.removeClass('error');
  242.                     }
  243.                 });
  244.             element.on('click keypress dblclick', showEditor)
  245.                 .css('cursor', 'pointer')
  246.                 .keydown(function (e) {
  247.                     var prevent = true,
  248.                         possibleMove = movement($(e.target), e.which);
  249.                     if (possibleMove.length &gt; 0) {
  250.                         possibleMove.focus();
  251.                     } else if (e.which === ENTER) {
  252.                         showEditor(false);
  253.                     } else if (e.which === 17 || e.which === 91 || e.which === 93) {
  254.                         showEditor(true);
  255.                         prevent = false;
  256.                     } else {
  257.                         prevent = false;
  258.                     }
  259.                     if (prevent) {
  260.                         e.stopPropagation();
  261.                         e.preventDefault();
  262.                     }
  263.                 });
  264.             element.find('td').prop('tabindex', 1);
  265.             $(window).on('resize', function () {
  266.                 if (editor.is(':visible')) {
  267.                     editor.offset(active.offset())
  268.                         .width(active.width())
  269.                         .height(active.height());
  270.                 }
  271.             });
  272.         });
  273.     };
  274.     $.fn.editableTableWidget.defaultOptions = {
  275.         cloneProperties: ['padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right',
  276.             'text-align', 'font', 'font-size', 'font-family', 'font-weight',
  277.             'border', 'border-top', 'border-bottom', 'border-left', 'border-right'],
  278.         editor: $('&lt;input&gt;')
  279.     };
  280. &lt;/script&gt;
  281.  
  282. </body>

  283. </html>

版本二

1. 样式

布局样式:

添加/修改:

2. 代码

  1. @using ITOO.FreshNewReport.ViewModel
  2. @{
  3. Layout = null;
  4. }
  5. <html>
  6. <head>
  7. <title>数据表格编辑_大气漂亮的Bootstrap后台管理系统模板Se7en - JS代码网
  8. </title>
  9. <!--<link href="http://fonts.googleapis.com/css?family=Lato:100,300,400,700" media="all" rel="stylesheet" type="text/css" />-->
  10. <link href="../../BootStrap/se7ven/../../BootStrap/se7ven/stylesheets/bootstrap.min.css" media="all" rel="stylesheet" type="text/css" />
  11. <link href="../../BootStrap/se7ven/stylesheets/font-awesome.css" media="all" rel="stylesheet" type="text/css" />
  12. <link href="../../BootStrap/se7ven/stylesheets/se7en-font.css" media="all" rel="stylesheet" type="text/css" />
  13. <link href="../../BootStrap/se7ven/stylesheets/isotope.css" media="all" rel="stylesheet" type="text/css" />
  14. <link href="../../BootStrap/se7ven/stylesheets/jquery.fancybox.css" media="all" rel="stylesheet" type="text/css" />
  15. <link href="../../BootStrap/se7ven/stylesheets/fullcalendar.css" media="all" rel="stylesheet" type="text/css" />
  16. <link href="../../BootStrap/se7ven/stylesheets/wizard.css" media="all" rel="stylesheet" type="text/css" />
  17. <link href="../../BootStrap/se7ven/stylesheets/select2.css" media="all" rel="stylesheet" type="text/css" />
  18. <link href="../../BootStrap/se7ven/stylesheets/morris.css" media="all" rel="stylesheet" type="text/css" />
  19. <link href="../../BootStrap/se7ven/stylesheets/datatables.css" media="all" rel="stylesheet" type="text/css" />
  20. <link href="../../BootStrap/se7ven/stylesheets/datepicker.css" media="all" rel="stylesheet" type="text/css" />
  21. <link href="../../BootStrap/se7ven/stylesheets/timepicker.css" media="all" rel="stylesheet" type="text/css" />
  22. <link href="../../BootStrap/se7ven/stylesheets/colorpicker.css" media="all" rel="stylesheet" type="text/css" />
  23. <link href="../../BootStrap/se7ven/stylesheets/bootstrap-switch.css" media="all" rel="stylesheet" type="text/css" />
  24. <link href="../../BootStrap/se7ven/stylesheets/daterange-picker.css" media="all" rel="stylesheet" type="text/css" />
  25. <link href="../../BootStrap/se7ven/stylesheets/typeahead.css" media="all" rel="stylesheet" type="text/css" />
  26. <link href="../../BootStrap/se7ven/stylesheets/summernote.css" media="all" rel="stylesheet" type="text/css" />
  27. <link href="../../BootStrap/se7ven/stylesheets/pygments.css" media="all" rel="stylesheet" type="text/css" />
  28. <link href="../../BootStrap/se7ven/stylesheets/style.css" media="all" rel="stylesheet" type="text/css" />
  29. <link href="../../BootStrap/se7ven/stylesheets/color/green.css" media="all" rel="alternate stylesheet" title="green-theme" type="text/css" />
  30. <link href="../../BootStrap/se7ven/stylesheets/color/orange.css" media="all" rel="alternate stylesheet" title="orange-theme" type="text/css" />
  31. <link href="../../BootStrap/se7ven/stylesheets/color/magenta.css" media="all" rel="alternate stylesheet" title="magenta-theme" type="text/css" />
  32. <link href="../../BootStrap/se7ven/stylesheets/color/gray.css" media="all" rel="alternate stylesheet" title="gray-theme" type="text/css" />
  33. <script src="../../BootStrap/se7ven/javascripts/jquery.min.js" type="text/javascript"></script>
  34. <script src="../../BootStrap/se7ven/javascripts/jquery-ui.js" type="text/javascript"></script>
  35. <script src="../../BootStrap/se7ven/javascripts/bootstrap.min.js" type="text/javascript"></script>
  36. <script src="../../BootStrap/se7ven/javascripts/raphael.min.js" type="text/javascript"></script>
  37. <script src="../../BootStrap/se7ven/javascripts/selectivizr-min.js" type="text/javascript"></script>
  38. <script src="../../BootStrap/se7ven/javascripts/jquery.mousewheel.js" type="text/javascript"></script>
  39. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.min.js" type="text/javascript"></script>
  40. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.sampledata.js" type="text/javascript"></script>
  41. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.world.js" type="text/javascript"></script>
  42. <script src="../../BootStrap/se7ven/javascripts/jquery.bootstrap.wizard.js" type="text/javascript"></script>
  43. <script src="../../BootStrap/se7ven/javascripts/fullcalendar.min.js" type="text/javascript"></script>
  44. <script src="../../BootStrap/se7ven/javascripts/gcal.js" type="text/javascript"></script>
  45. <script src="../../BootStrap/se7ven/javascripts/jquery.dataTables.min.js" type="text/javascript"></script>
  46. <script src="../../BootStrap/se7ven/javascripts/datatable-editable.js" type="text/javascript"></script>
  47. <script src="../../BootStrap/se7ven/javascripts/jquery.easy-pie-chart.js" type="text/javascript"></script>
  48. <script src="../../BootStrap/se7ven/javascripts/excanvas.min.js" type="text/javascript"></script>
  49. <script src="../../BootStrap/se7ven/javascripts/jquery.isotope.min.js" type="text/javascript"></script>
  50. <script src="../../BootStrap/se7ven/javascripts/isotope_extras.js" type="text/javascript"></script>
  51. <script src="../../BootStrap/se7ven/javascripts/modernizr.custom.js" type="text/javascript"></script>
  52. <script src="../../BootStrap/se7ven/javascripts/jquery.fancybox.pack.js" type="text/javascript"></script>
  53. <script src="../../BootStrap/se7ven/javascripts/select2.js" type="text/javascript"></script>
  54. <script src="../../BootStrap/se7ven/javascripts/styleswitcher.js" type="text/javascript"></script>
  55. <script src="../../BootStrap/se7ven/javascripts/wysiwyg.js" type="text/javascript"></script>
  56. <script src="../../BootStrap/se7ven/javascripts/summernote.min.js" type="text/javascript"></script>
  57. <script src="../../BootStrap/se7ven/javascripts/jquery.inputmask.min.js" type="text/javascript"></script>
  58. <script src="../../BootStrap/se7ven/javascripts/jquery.validate.js" type="text/javascript"></script>
  59. <script src="../../BootStrap/se7ven/javascripts/bootstrap-fileupload.js" type="text/javascript"></script>
  60. <script src="../../BootStrap/se7ven/javascripts/bootstrap-datepicker.js" type="text/javascript"></script>
  61. <script src="../../BootStrap/se7ven/javascripts/bootstrap-timepicker.js" type="text/javascript"></script>
  62. <script src="../../BootStrap/se7ven/javascripts/bootstrap-colorpicker.js" type="text/javascript"></script>
  63. <script src="../../BootStrap/se7ven/javascripts/bootstrap-switch.min.js" type="text/javascript"></script>
  64. <script src="../../BootStrap/se7ven/javascripts/typeahead.js" type="text/javascript"></script>
  65. <script src="../../BootStrap/se7ven/javascripts/daterange-picker.js" type="text/javascript"></script>
  66. <script src="../../BootStrap/se7ven/javascripts/date.js" type="text/javascript"></script>
  67. <script src="../../BootStrap/se7ven/javascripts/morris.min.js" type="text/javascript"></script>
  68. <script src="../../BootStrap/se7ven/javascripts/skycons.js" type="text/javascript"></script>
  69. <script src="../../BootStrap/se7ven/javascripts/fitvids.js" type="text/javascript"></script>
  70. <script src="../../BootStrap/se7ven/javascripts/jquery.sparkline.min.js" type="text/javascript"></script>
  71. <script src="../../BootStrap/se7ven/javascripts/main.js" type="text/javascript"></script>
  72. <script src="../../BootStrap/se7ven/javascripts/respond.js" type="text/javascript"></script>
  73. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
  74. </head>
  75. <body>
  76. <div class="modal-shiftfix">
  77. <div class="container-fluid main-content">
  78. <div class="page-title">
  79. <h1>Editable DataTables
  80. </h1>
  81. </div>
  82. <!-- DataTables Example -->
  83. <div class="row">
  84. <div class="col-lg-12">
  85. <div class="widget-container fluid-height clearfix">
  86. <div class="heading">
  87. <i class="icon-table"></i>DataTable with Sorting<a class="btn btn-sm btn-primary-outline pull-right" href="#" id="add-row"><i class="icon-plus"></i>Add row</a>
  88. </div>
  89. <div class="widget-content padded clearfix">
  90. <table class="table table-bordered table-striped" id="datatable-editable">
  91. <thead>
  92. @*<th class="check-header hidden-xs">
  93. <input id="checkAll" name="checkAll" type="checkbox">*@
  94. <th>姓名</th>
  95. <th>称谓 </th>
  96. <th>年龄 </th>
  97. <th>政治面貌</th>
  98. <th>电话号码 </th>
  99. <th>工作单位</th>
  100. <th class="hidden-xs">家庭住址</th>
  101. <th width="60"></th>
  102. <th width="75"></th>
  103. </thead>
  104. <tbody>
  105. @foreach (FamilyInfoViewModel enStuFam in ViewData["DataList"] as List<FamilyInfoViewModel>)
  106. {
  107. <tr>
  108. @*<td>
  109. <input name="checkbox" type="checkbox" id="1">
  110. </td>*@
  111. <td>@enStuFam.Name </td>
  112. <td>@enStuFam.RelationShip</td>
  113. <td>@enStuFam.Age</td>
  114. <td>@enStuFam.PoliticalStatus</td>
  115. <td>@enStuFam.TelNum </td>
  116. <td>@enStuFam.WorkUnit</td>
  117. <td>@enStuFam.Address </td>
  118. <td>
  119. <a class="edit-row" href="#">Edit</a>
  120. </td>
  121. <td>
  122. <a class="delete-row" href="#">Delete</a>
  123. </td>
  124. </tr>
  125. }
  126. </tbody>
  127. </table>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <!-- end DataTables Example -->
  133. </div>
  134. </div>
  135. </body>
  136. </html>
  1. @using ITOO.FreshNewReport.ViewModel
  2. @{
  3. Layout = null;
  4. }
  5. <html>
  6. <head>

  7. <title>数据表格编辑_大气漂亮的Bootstrap后台管理系统模板Se7en - JS代码网

  8. </title>

  9. <!--<link href="http://fonts.googleapis.com/css?family=Lato:100,300,400,700" media="all" rel="stylesheet" type="text/css" />-->

  10. <link href="../../BootStrap/se7ven/../../BootStrap/se7ven/stylesheets/bootstrap.min.css" media="all" rel="stylesheet" type="text/css" />

  11. <link href="../../BootStrap/se7ven/stylesheets/font-awesome.css" media="all" rel="stylesheet" type="text/css" />

  12. <link href="../../BootStrap/se7ven/stylesheets/se7en-font.css" media="all" rel="stylesheet" type="text/css" />

  13. <link href="../../BootStrap/se7ven/stylesheets/isotope.css" media="all" rel="stylesheet" type="text/css" />

  14. <link href="../../BootStrap/se7ven/stylesheets/jquery.fancybox.css" media="all" rel="stylesheet" type="text/css" />

  15. <link href="../../BootStrap/se7ven/stylesheets/fullcalendar.css" media="all" rel="stylesheet" type="text/css" />

  16. <link href="../../BootStrap/se7ven/stylesheets/wizard.css" media="all" rel="stylesheet" type="text/css" />

  17. <link href="../../BootStrap/se7ven/stylesheets/select2.css" media="all" rel="stylesheet" type="text/css" />

  18. <link href="../../BootStrap/se7ven/stylesheets/morris.css" media="all" rel="stylesheet" type="text/css" />

  19. <link href="../../BootStrap/se7ven/stylesheets/datatables.css" media="all" rel="stylesheet" type="text/css" />

  20. <link href="../../BootStrap/se7ven/stylesheets/datepicker.css" media="all" rel="stylesheet" type="text/css" />

  21. <link href="../../BootStrap/se7ven/stylesheets/timepicker.css" media="all" rel="stylesheet" type="text/css" />

  22. <link href="../../BootStrap/se7ven/stylesheets/colorpicker.css" media="all" rel="stylesheet" type="text/css" />

  23. <link href="../../BootStrap/se7ven/stylesheets/bootstrap-switch.css" media="all" rel="stylesheet" type="text/css" />

  24. <link href="../../BootStrap/se7ven/stylesheets/daterange-picker.css" media="all" rel="stylesheet" type="text/css" />

  25. <link href="../../BootStrap/se7ven/stylesheets/typeahead.css" media="all" rel="stylesheet" type="text/css" />

  26. <link href="../../BootStrap/se7ven/stylesheets/summernote.css" media="all" rel="stylesheet" type="text/css" />

  27. <link href="../../BootStrap/se7ven/stylesheets/pygments.css" media="all" rel="stylesheet" type="text/css" />

  28. <link href="../../BootStrap/se7ven/stylesheets/style.css" media="all" rel="stylesheet" type="text/css" />

  29. <link href="../../BootStrap/se7ven/stylesheets/color/green.css" media="all" rel="alternate stylesheet" title="green-theme" type="text/css" />

  30. <link href="../../BootStrap/se7ven/stylesheets/color/orange.css" media="all" rel="alternate stylesheet" title="orange-theme" type="text/css" />

  31. <link href="../../BootStrap/se7ven/stylesheets/color/magenta.css" media="all" rel="alternate stylesheet" title="magenta-theme" type="text/css" />

  32. <link href="../../BootStrap/se7ven/stylesheets/color/gray.css" media="all" rel="alternate stylesheet" title="gray-theme" type="text/css" />

  33. <script src="../../BootStrap/se7ven/javascripts/jquery.min.js" type="text/javascript"></script>

  34. <script src="../../BootStrap/se7ven/javascripts/jquery-ui.js" type="text/javascript"></script>

  35. <script src="../../BootStrap/se7ven/javascripts/bootstrap.min.js" type="text/javascript"></script>

  36. <script src="../../BootStrap/se7ven/javascripts/raphael.min.js" type="text/javascript"></script>

  37. <script src="../../BootStrap/se7ven/javascripts/selectivizr-min.js" type="text/javascript"></script>

  38. <script src="../../BootStrap/se7ven/javascripts/jquery.mousewheel.js" type="text/javascript"></script>

  39. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.min.js" type="text/javascript"></script>

  40. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.sampledata.js" type="text/javascript"></script>

  41. <script src="../../BootStrap/se7ven/javascripts/jquery.vmap.world.js" type="text/javascript"></script>

  42. <script src="../../BootStrap/se7ven/javascripts/jquery.bootstrap.wizard.js" type="text/javascript"></script>

  43. <script src="../../BootStrap/se7ven/javascripts/fullcalendar.min.js" type="text/javascript"></script>

  44. <script src="../../BootStrap/se7ven/javascripts/gcal.js" type="text/javascript"></script>

  45. <script src="../../BootStrap/se7ven/javascripts/jquery.dataTables.min.js" type="text/javascript"></script>

  46. <script src="../../BootStrap/se7ven/javascripts/datatable-editable.js" type="text/javascript"></script>

  47. <script src="../../BootStrap/se7ven/javascripts/jquery.easy-pie-chart.js" type="text/javascript"></script>

  48. <script src="../../BootStrap/se7ven/javascripts/excanvas.min.js" type="text/javascript"></script>

  49. <script src="../../BootStrap/se7ven/javascripts/jquery.isotope.min.js" type="text/javascript"></script>

  50. <script src="../../BootStrap/se7ven/javascripts/isotope_extras.js" type="text/javascript"></script>

  51. <script src="../../BootStrap/se7ven/javascripts/modernizr.custom.js" type="text/javascript"></script>

  52. <script src="../../BootStrap/se7ven/javascripts/jquery.fancybox.pack.js" type="text/javascript"></script>

  53. <script src="../../BootStrap/se7ven/javascripts/select2.js" type="text/javascript"></script>

  54. <script src="../../BootStrap/se7ven/javascripts/styleswitcher.js" type="text/javascript"></script>

  55. <script src="../../BootStrap/se7ven/javascripts/wysiwyg.js" type="text/javascript"></script>

  56. <script src="../../BootStrap/se7ven/javascripts/summernote.min.js" type="text/javascript"></script>

  57. <script src="../../BootStrap/se7ven/javascripts/jquery.inputmask.min.js" type="text/javascript"></script>

  58. <script src="../../BootStrap/se7ven/javascripts/jquery.validate.js" type="text/javascript"></script>

  59. <script src="../../BootStrap/se7ven/javascripts/bootstrap-fileupload.js" type="text/javascript"></script>

  60. <script src="../../BootStrap/se7ven/javascripts/bootstrap-datepicker.js" type="text/javascript"></script>

  61. <script src="../../BootStrap/se7ven/javascripts/bootstrap-timepicker.js" type="text/javascript"></script>

  62. <script src="../../BootStrap/se7ven/javascripts/bootstrap-colorpicker.js" type="text/javascript"></script>

  63. <script src="../../BootStrap/se7ven/javascripts/bootstrap-switch.min.js" type="text/javascript"></script>

  64. <script src="../../BootStrap/se7ven/javascripts/typeahead.js" type="text/javascript"></script>

  65. <script src="../../BootStrap/se7ven/javascripts/daterange-picker.js" type="text/javascript"></script>

  66. <script src="../../BootStrap/se7ven/javascripts/date.js" type="text/javascript"></script>

  67. <script src="../../BootStrap/se7ven/javascripts/morris.min.js" type="text/javascript"></script>

  68. <script src="../../BootStrap/se7ven/javascripts/skycons.js" type="text/javascript"></script>

  69. <script src="../../BootStrap/se7ven/javascripts/fitvids.js" type="text/javascript"></script>

  70. <script src="../../BootStrap/se7ven/javascripts/jquery.sparkline.min.js" type="text/javascript"></script>

  71. <script src="../../BootStrap/se7ven/javascripts/main.js" type="text/javascript"></script>

  72. <script src="../../BootStrap/se7ven/javascripts/respond.js" type="text/javascript"></script>

  73. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">

  74. </head>

  75. <body>

  76. <div class="modal-shiftfix">

  77. <div class="container-fluid main-content">

  78. <div class="page-title">

  79. <h1>Editable DataTables

  80. </h1>

  81. </div>

  82. <!-- DataTables Example -->

  83. <div class="row">

  84. <div class="col-lg-12">

  85. <div class="widget-container fluid-height clearfix">

  86. <div class="heading">

  87. <i class="icon-table"></i>DataTable with Sorting<a class="btn btn-sm btn-primary-outline pull-right" href="#" id="add-row"><i class="icon-plus"></i>Add row</a>

  88. </div>

  89. <div class="widget-content padded clearfix">

  90. <table class="table table-bordered table-striped" id="datatable-editable">

  91. <thead>

  92. @<th class="check-header hidden-xs">

  93. <input id="checkAll" name="checkAll" type="checkbox">@

  94. <th>姓名</th>

  95. <th>称谓 </th>

  96. <th>年龄 </th>

  97. <th>政治面貌</th>

  98. <th>电话号码 </th>

  99. <th>工作单位</th>

  100. <th class="hidden-xs">家庭住址</th>

  101. <th width="60"></th>

  102. <th width="75"></th>

  103. </thead>

  104. <tbody>

  105. @foreach (FamilyInfoViewModel enStuFam in ViewData["DataList"] as List<FamilyInfoViewModel>)

  106. {

  107. <tr>

  108. @<td>

  109. <input name="checkbox" type="checkbox" id="1">

  110. </td>@
  111.                                         &lt;td&gt;@enStuFam.Name &lt;/td&gt;
  112.                                         &lt;td&gt;@enStuFam.RelationShip&lt;/td&gt;
  113.                                         &lt;td&gt;@enStuFam.Age&lt;/td&gt;
  114.                                         &lt;td&gt;@enStuFam.PoliticalStatus&lt;/td&gt;
  115.                                         &lt;td&gt;@enStuFam.TelNum &lt;/td&gt;
  116.                                         &lt;td&gt;@enStuFam.WorkUnit&lt;/td&gt;
  117.                                         &lt;td&gt;@enStuFam.Address &lt;/td&gt;
  118.                                         &lt;td&gt;
  119.                                             &lt;a class="edit-row" href="#"&gt;Edit&lt;/a&gt;
  120.                                         &lt;/td&gt;
  121.                                         &lt;td&gt;
  122.                                             &lt;a class="delete-row" href="#"&gt;Delete&lt;/a&gt;
  123.                                         &lt;/td&gt;
  124.                                     &lt;/tr&gt;
  125.                                 }
  126.                             &lt;/tbody&gt;
  127.                         &lt;/table&gt;
  128.                     &lt;/div&gt;
  129.                 &lt;/div&gt;
  130.             &lt;/div&gt;
  131.         &lt;/div&gt;
  132.         &lt;!-- end DataTables Example --&gt;
  133.     &lt;/div&gt;
  134. &lt;/div&gt;
  135.  
  136. </body>

  137. </html>

版本三

1.样式

卡片式表格:

添加/修改 弹出一个新页面:

2.代码

View代码:

  1. <div class="container-fluid main-content">
  2. <div class="row">
  3. <div class="col-lg-12">
  4. <div class="widget-container fluid-height clearfix">
  5. @*按钮*@
  6. <div class="heading">
  7. @*添加按钮*@
  8. <span class="ui-button">
  9. <a class="btn  btn-success  glyphicon glyphicon-plus" href="../AddEduInfo/AddEduInfo">添加</a>
  10. </span>
  11. @*修改*@
  12. <span class="ui-button">
  13. <a class="btn  btn-warning  glyphicon glyphicon-edit" href="../AddEduInfo/AddEduInfo">修改</a>
  14. </span>
  15. @*删除*@
  16. @* <span class="ui-button" data-target="#myModal" >
  17. <a class="btn  btn-danger  glyphicon glyphicon-minus" >删除</a>
  18. </span>*@
  19. <span>
  20. <button type="button" class="btn btn-danger glyphicon glyphicon-minus" data-toggle="modal" data-target="#myModal">
  21. 删除
  22. </button>
  23. </span>
  24. </div>
  25. <table id="events-table" style="font-size: 15px" class="table" data-toggle="table" data-card-view="true" data-url="/StuPersonInfo/ShowEducation">
  26. <thead>
  27. <tr class="info">
  28. <th data-field="state" data-checkbox="true"></th>
  29. <th data-field="StartDate" data-sortable="true">开始日期</th>
  30. <th data-field="EndDate" data-sortable="true">结束日期</th>
  31. <th data-field="SchoolName" data-sortable="true">毕业学校</th>
  32. <th data-field="TeacherName" data-visible="true">证明教师</th>
  33. @* <th data-field="" data-sortable="true" data-formatter="operateFormatter" data-events="operateEvents">编  辑</th>*@
  34. </tr>
  35. </thead>
  36. </table>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  1. <div class="container-fluid main-content">
  2.                                 &lt;div class="row"&gt;
  3.                                     &lt;div class="col-lg-12"&gt;
  4.                                         &lt;div class="widget-container fluid-height clearfix"&gt;
  5.                                             @*按钮*@
  6.                                             &lt;div class="heading"&gt;
  7.                                                   @*添加按钮*@
  8.                                             &lt;span class="ui-button"&gt;
  9.                                                 &lt;a class="btn  btn-success  glyphicon glyphicon-plus" href="../AddEduInfo/AddEduInfo"&gt;添加&lt;/a&gt;
  10.                                             &lt;/span&gt;
  11.                                             @*修改*@
  12.                                             &lt;span class="ui-button"&gt;
  13.                                                 &lt;a class="btn  btn-warning  glyphicon glyphicon-edit" href="../AddEduInfo/AddEduInfo"&gt;修改&lt;/a&gt;
  14.                                             &lt;/span&gt;
  15.                                             @*删除*@
  16.                                             @* &lt;span class="ui-button" data-target="#myModal" &gt;
  17.                                                 &lt;a class="btn  btn-danger  glyphicon glyphicon-minus" &gt;删除&lt;/a&gt;
  18.                                             &lt;/span&gt;*@
  19.                                             &lt;span&gt;
  20.                                                 &lt;button type="button" class="btn btn-danger glyphicon glyphicon-minus" data-toggle="modal" data-target="#myModal"&gt;
  21.                                             删除
  22.                                                 &lt;/button&gt;
  23.                                             &lt;/span&gt;
  24.                                             &lt;/div&gt;
  25.                                             &lt;table id="events-table" style="font-size: 15px" class="table" data-toggle="table" data-card-view="true" data-url="/StuPersonInfo/ShowEducation"&gt;
  26.                                                 &lt;thead&gt;
  27.                                                     &lt;tr class="info"&gt;
  28.                                                         &lt;th data-field="state" data-checkbox="true"&gt;&lt;/th&gt;
  29.                                                         &lt;th data-field="StartDate" data-sortable="true"&gt;开始日期&lt;/th&gt;
  30.                                                         &lt;th data-field="EndDate" data-sortable="true"&gt;结束日期&lt;/th&gt;
  31.                                                         &lt;th data-field="SchoolName" data-sortable="true"&gt;毕业学校&lt;/th&gt;
  32.                                                         &lt;th data-field="TeacherName" data-visible="true"&gt;证明教师&lt;/th&gt;
  33.                                                         @* &lt;th data-field="" data-sortable="true" data-formatter="operateFormatter" data-events="operateEvents"&gt;编  辑&lt;/th&gt;*@
  34.                                                     &lt;/tr&gt;
  35.                                                 &lt;/thead&gt;
  36.                                             &lt;/table&gt;
  37.                                         &lt;/div&gt;
  38.                                     &lt;/div&gt;
  39.                                 &lt;/div&gt;
  40.                             &lt;/div&gt;</pre><br><span style="font-size:14px;">Controller代码:</span>
  41.  
    1. #region ShowEducation() 显示教育经历 王美 2015年6月5日
    1. /// <summary>
    1. /// 显示教育经历
    1. /// </summary>
    1. /// <returns>教育经历Json</returns>
    1. public JsonResult ShowEducation()
    1. {
    1. //创建WCF接口
    1. IEduInfoService EduServiceShow = ServiceFactory.GetEduInfoService();
    1. //从缓存中获取身份证号
    1. string IdentityCardID = (String)MemcacheHelper.Get("IdentityCardID");
    1. //调用WCF查询方法
    1. List<EduExperienceViewModel> listEduInfo = EduServiceShow.QueryEduInfo(IdentityCardID);
    1. //返回Json串
    1. return Json(listEduInfo, JsonRequestBehavior.AllowGet);
    1. }
    1. #endregion
  42.  
  43. #region ShowEducation() 显示教育经历 王美 2015年6月5日
  44.         /// <summary>
  45.         /// 显示教育经历
  46.         /// </summary>
  47.         /// <returns>教育经历Json</returns>
  48.         public JsonResult ShowEducation()
  49.         {
  50.             //创建WCF接口
  51.             IEduInfoService EduServiceShow = ServiceFactory.GetEduInfoService();
  52.             //从缓存中获取身份证号
  53.            string IdentityCardID = (String)MemcacheHelper.Get("IdentityCardID");
  54.             //调用WCF查询方法
  55.             List<EduExperienceViewModel> listEduInfo = EduServiceShow.QueryEduInfo(IdentityCardID);
  56.             //返回Json串
  57.             return Json(listEduInfo, JsonRequestBehavior.AllowGet);
  58.         }
  59. #endregion
  60. 前两个版本代码资源链接

  61. 总结

  62. 做表格的过程乐趣无穷,也有过纠结、烦躁。最后绑定数据实现了查询,添加、修改、删除还在完善。慢慢的开始发现,有的时候我们不仅仅要享受过程,更要竭尽全力去争取一个好的结果。加油吧。

  • 上一篇
    【Java基础】--异常处理
    1. <li class="next_article">
    2. <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='https://blog.csdn.net/wangmei4968/article/details/48439385';">下一篇</span>
    3. <a href="https://blog.csdn.net/wangmei4968/article/details/48439385" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">【BootStrap】--登录加载模态框提示</a>
    4. </li>
    5. </ul>
    6. <div style="clear:both; height:10px;"></div>
    7. </div>

【BootStrap】--具有增删改查功能的表格Demo的更多相关文章

  1. 具有增删改查功能的表格Demo--【BootStrap】

    http://blog.csdn.net/wangmei4968/article/details/48437175

  2. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...

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

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

  4. 使用Bootstrap模态框实现增删改查功能

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 本文实现的是使用模态框实现简单的增删改查的功能. ...

  5. BootstrapTable与KnockoutJS相结合实现增删改查功能

    http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...

  6. 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能

    此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...

  7. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  8. IDEA搭建SSM实现登录、注册,数据增删改查功能

     本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...

  9. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

随机推荐

  1. stream分组

    1.根据集合元素中的一个属性值分组 Person p1 = new Person("张三", new BigDecimal("10.0"));Person p2 ...

  2. 威胁快报|首爆新型ibus蠕虫,利用热门漏洞疯狂挖矿牟利

    一.背景 近日阿里云安全团队发现了一起利用多个流行漏洞传播的蠕虫事件.黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机,并将其中一台“肉鸡”作为蠕虫脚本的下载源.其余受控主机下载并运 ...

  3. TZ_13_负载均衡-Robbin

    1.但是实际环境中,我们往往会开启很多个user-service的集群.此时我们获取的服务列表中就会有多个,到底该访问哪一个呢? 一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择. ...

  4. SSM11-solr服务的搭建

    1.  Solr服务搭建 1.1. Solr的环境 Solr是java开发. 需要安装jdk. 安装环境Linux. 需要安装Tomcat. 1.2. 搭建步骤 第一步:把solr 的压缩包上传到Li ...

  5. @ font-face 引入本地字体文件

    @font-face { font-family: DeliciousRoman; src: url('…/Delicious-Roman.otf'); font-stretch: condensed ...

  6. mac ssh 远程容易断线解决方案

    编辑文件 /etc/ssh/ssh_config 添加下面两行 ServerAliveInterval 60 ServerAliveCountMax 3 说明一下: #server每隔60秒发送一次请 ...

  7. js中的定义变量之①用不用var

    var 是js定义变量的意思. 由于js中的变量是弱类型的,因此js中的所有变量包括number(数字型).string(字符串类型).boolean(布尔类型,true和false)等均通过var关 ...

  8. log4j2----JAVA日志打印

    注意:本篇文章是以log4j2.x 为例的,并不是log4j 1.x log4j 就是log for java  , log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中 ...

  9. MySQLDemo2

    -- 查询所有数据库 show databases -- 删除数据库 drop database a -- use `数据库名称`; 表示使用此数据库 use mybatis -- 查看表结构 sho ...

  10. Java借助itext pdf生成固定格式pdf的模板工具类

    这里是标题区域 这里是副标题1: 副标题的内容 这里是副标题2: 这里是副标题2的内容 这里是副标题3: 这里是副标题3的内容 序号 表头1 复合表头 表头2 子表头1 子表头2 子表头3 1 居左内 ...