custom-grid-field.html 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  5. <title>jsGrid - Custom Grid Field Scenario</title>
  6. <link rel="stylesheet" type="text/css" href="demos.css" />
  7. <link href='http://fonts.googleapis.com/css?family=Open+Sans:300,600,400' rel='stylesheet' type='text/css' />
  8. <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.2/themes/cupertino/jquery-ui.css">
  9. <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
  10. <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
  11. <link rel="stylesheet" type="text/css" href="../css/jsgrid.css" />
  12. <link rel="stylesheet" type="text/css" href="../css/theme.css" />
  13. <script src="db.js"></script>
  14. <script src="../src/jsgrid.core.js"></script>
  15. <script src="../src/jsgrid.load-indicator.js"></script>
  16. <script src="../src/jsgrid.load-strategies.js"></script>
  17. <script src="../src/jsgrid.sort-strategies.js"></script>
  18. <script src="../src/jsgrid.field.js"></script>
  19. <script src="../src/fields/jsgrid.field.text.js"></script>
  20. <script src="../src/fields/jsgrid.field.control.js"></script>
  21. <style>
  22. .hasDatepicker {
  23. width: 100px;
  24. text-align: center;
  25. }
  26. .ui-datepicker * {
  27. font-family: 'Helvetica Neue Light', 'Open Sans', Helvetica;
  28. font-size: 14px;
  29. font-weight: 300 !important;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <h1>Custom Grid DateField</h1>
  35. <div id="jsGrid"></div>
  36. <script>
  37. $(function() {
  38. var MyDateField = function(config) {
  39. jsGrid.Field.call(this, config);
  40. };
  41. MyDateField.prototype = new jsGrid.Field({
  42. sorter: function(date1, date2) {
  43. return new Date(date1) - new Date(date2);
  44. },
  45. itemTemplate: function(value) {
  46. return new Date(value).toDateString();
  47. },
  48. insertTemplate: function(value) {
  49. return this._insertPicker = $("<input>").datepicker({ defaultDate: new Date() });
  50. },
  51. editTemplate: function(value) {
  52. return this._editPicker = $("<input>").datepicker().datepicker("setDate", new Date(value));
  53. },
  54. insertValue: function() {
  55. return this._insertPicker.datepicker("getDate").toISOString();
  56. },
  57. editValue: function() {
  58. return this._editPicker.datepicker("getDate").toISOString();
  59. }
  60. });
  61. jsGrid.fields.myDateField = MyDateField;
  62. $("#jsGrid").jsGrid({
  63. height: "70%",
  64. width: "100%",
  65. inserting: true,
  66. editing: true,
  67. sorting: true,
  68. paging: true,
  69. fields: [
  70. { name: "Account", width: 150, align: "center" },
  71. { name: "Name", type: "text" },
  72. { name: "RegisterDate", type: "myDateField", width: 100, align: "center" },
  73. { type: "control", editButton: false, modeSwitchButton: false }
  74. ],
  75. data: db.users
  76. });
  77. });
  78. </script>
  79. </body>
  80. </html>