bootstrap.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset='utf-8'>
  5. <title>Twitter Bootstrap integration - Handsontable</title>
  6. <!--
  7. Loading Handsontable (full distribution that includes all dependencies apart from jQuery)
  8. -->
  9. <link data-jsfiddle="common" rel="stylesheet" media="screen" href="../dist/pikaday/pikaday.css">
  10. <script data-jsfiddle="common" src="../dist/pikaday/pikaday.js"></script>
  11. <script data-jsfiddle="common" src="../dist/moment/moment.js"></script>
  12. <script data-jsfiddle="common" src="../dist/zeroclipboard/ZeroClipboard.js"></script>
  13. <script data-jsfiddle="common" src="../dist/numbro/numbro.js"></script>
  14. <script data-jsfiddle="common" src="../dist/numbro/languages.js"></script>
  15. <script data-jsfiddle="common" src="../demo/js/jquery.min.js"></script>
  16. <script data-jsfiddle="common" src="../dist/handsontable.js"></script>
  17. <link data-jsfiddle="common" rel="stylesheet" type="text/css" href="bootstrap/v3/css/bootstrap.css">
  18. <link data-jsfiddle="common" rel="stylesheet" media="screen" href="../dist/handsontable.css">
  19. <!--
  20. Loading demo dependencies. They are used here only to enhance the examples on this page
  21. -->
  22. <link data-jsfiddle="common" rel="stylesheet" media="screen" href="css/samples.css?20140331">
  23. <script src="js/samples.js"></script>
  24. <script src="js/highlight/highlight.pack.js"></script>
  25. <link rel="stylesheet" media="screen" href="js/highlight/styles/github.css">
  26. <link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css">
  27. <!--
  28. Facebook open graph. Don't copy this to your project :)
  29. -->
  30. <meta property="og:title" content="Handsontable cell type">
  31. <meta property="og:description"
  32. content="This page shows very specific example of using Handsontable as a cell editor in Handsontable.">
  33. <meta property="og:url" content="http://handsontable.com/demo/handsontable.html">
  34. <meta property="og:image" content="http://handsontable.com/demo/image/og-image.png">
  35. <meta property="og:image:type" content="image/png">
  36. <meta property="og:image:width" content="409">
  37. <meta property="og:image:height" content="164">
  38. <link rel="canonical" href="http://handsontable.com/demo/handsontable.html">
  39. <!--
  40. Google Analytics for GitHub Page. Don't copy this to your project :)
  41. -->
  42. <script src="js/ga.js"></script>
  43. <script>
  44. window.Bootstrap = true;
  45. </script>
  46. <style type="text/css">
  47. .codeLayout pre {
  48. background: none;
  49. border: none;
  50. width: 500px;
  51. white-space: nowrap;
  52. word-break: keep-all;
  53. word-wrap: normal;
  54. }
  55. input[type="checkbox"] {
  56. margin-top: -2px;
  57. position: relative;
  58. }
  59. </style>
  60. </head>
  61. <body>
  62. <div class="wrapper">
  63. <div class="wrapper-row">
  64. <div id="global-menu-clone">
  65. <h1><a href="../index.html">Handsontable</a></h1>
  66. </div>
  67. <div id="container">
  68. <div class="columnLayout">
  69. <div class="rowLayout">
  70. <div class="descLayout">
  71. <div class="pad" data-jsfiddle="example1">
  72. <h2>Twitter Bootstrap integration</h2>
  73. <p>This page demonstrate example of using Handsontable with Twitter Bootstrap.</p>
  74. <p><strike>Please note that you should reset some of Bootstrap styles. You can use file <a
  75. href="https://github.com/handsontable/handsontable/blob/master/plugins/bootstrap/handsontable.bootstrap.css">plugins/bootstrap/handsontable.bootstrap.css</a>
  76. for that purpose.</strike></p>
  77. <p class="options">
  78. <label><input data-type="table-bordered" type="checkbox"/> table-bordered </label>
  79. <label><input data-type="table-striped" type="checkbox"/> table-striped</label>
  80. <label><input data-type="table-hover" type="checkbox"/> table-hover</label>
  81. </p>
  82. <div id="example1"></div>
  83. <p>
  84. <button class="btn btn-info" name="dump" data-dump="#example1" data-instance="hot"
  85. title="Prints current data source to Firebug/Chrome Dev Tools">
  86. Dump
  87. data to console
  88. </button>
  89. </p>
  90. </div>
  91. </div>
  92. <div class="codeLayout">
  93. <div class="pad">
  94. <div class="jsFiddle">
  95. <button class="jsFiddleLink" data-runfiddle="example1">Edit in jsFiddle</button>
  96. </div>
  97. <script data-jsfiddle="example1">
  98. var data = [
  99. [1, 2, 3, 4, 5, 6],
  100. [1, 2, 3, 4, 5, 6],
  101. [1, 2, 3, 4, 5, 6],
  102. [1, 2, 3, 4, 5, 6],
  103. [1, 2, 3, 4, 5, 6],
  104. [1, 2, 3, 4, 5, 6],
  105. [1, 2, 3, 4, 5, 6],
  106. [1, 2, 3, 4, 5, 6],
  107. [1, 2, 3, 4, 5, 6],
  108. [1, 2, 3, 4, 5, 6],
  109. [1, 2, 3, 4, 5, 6],
  110. [1, 2, 3, 4, 5, 6],
  111. [1, 2, 3, 4, 5, 6],
  112. [1, 2, 3, 4, 5, 6],
  113. [1, 2, 3, 4, 5, 6],
  114. [1, 2, 3, 4, 5, 6],
  115. [1, 2, 3, 4, 5, 6],
  116. [1, 2, 3, 4, 5, 6]
  117. ],
  118. container = document.getElementById('example1'),
  119. options = document.querySelectorAll('.options input'),
  120. table,
  121. hot;
  122. hot = new Handsontable(container, {
  123. data: data,
  124. colHeaders: true,
  125. rowHeaders: true,
  126. minSpareRows: 1
  127. });
  128. table = document.querySelector('table');
  129. Handsontable.dom.addClass(table, 'table');
  130. for (var i = 0, len = options.length; i < len; i++) {
  131. Handsontable.dom.addEvent(options[i], 'click', function () {
  132. if (this.checked) {
  133. Handsontable.dom.addClass(table, this.getAttribute('data-type'))
  134. }
  135. else {
  136. Handsontable.dom.removeClass(table, this.getAttribute('data-type'))
  137. }
  138. });
  139. }
  140. </script>
  141. </div>
  142. </div>
  143. </div>
  144. <div class="rowLayout">
  145. <div class="descLayout">
  146. <div class="pad" data-jsfiddle="example2">
  147. <div class="row">
  148. <div id="example2" class="col-xs-12" style="overflow: hidden;"></div>
  149. </div>
  150. <p>
  151. <button class="btn btn-info" name="dump" data-dump="#example2" data-instance="hot"
  152. title="Prints current data source to Firebug/Chrome Dev Tools">
  153. Dump
  154. data to console
  155. </button>
  156. </p>
  157. </div>
  158. </div>
  159. <div class="codeLayout">
  160. <div class="pad">
  161. <div class="jsFiddle">
  162. <button class="jsFiddleLink" data-runfiddle="example2">Edit in jsFiddle</button>
  163. </div>
  164. <script data-jsfiddle="example2">
  165. var cols = 100,
  166. rows = 10,
  167. i, j, len,
  168. data2 = [];
  169. for (i = 0; i < rows; i++) {
  170. data2[i] = [];
  171. for (j = 0; j < cols; j++) {
  172. data2[i].push(j + 1);
  173. }
  174. }
  175. var container2 = document.getElementById('example2'),
  176. table2,
  177. hot2;
  178. hot2 = new Handsontable(container2, {
  179. data: data2,
  180. colHeaders: true,
  181. rowHeaders: true,
  182. fixedColumnsLeft: 3,
  183. fixedRowsTop: 3,
  184. contextMenu: true
  185. });
  186. var ex = document.getElementById('example2');
  187. table2 = ex.querySelectorAll('table');
  188. function findAncestor(el, cls) {
  189. while ((el = el.parentElement) && !el.classList.contains(cls)){
  190. return el;
  191. }
  192. }
  193. for (i = 0, len = table2.length; i < len; i++) {
  194. var tableInstance = table2[i];
  195. var isMaster = !!findAncestor(tableInstance, 'ht_master');
  196. Handsontable.dom.addClass(tableInstance, 'table');
  197. Handsontable.dom.addClass(tableInstance, 'table-hover');
  198. Handsontable.dom.addClass(tableInstance, 'table-striped');
  199. if (isMaster) {
  200. Handsontable.dom.addClass(tableInstance, 'table-bordered');
  201. }
  202. }
  203. </script>
  204. </div>
  205. </div>
  206. </div>
  207. <div class="footer-text"></div>
  208. </div>
  209. </div>
  210. </div>
  211. </div>
  212. <div id="outside-links-wrapper"></div>
  213. </body>
  214. </html>