custom-load-indicator.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  5. <title>jsGrid - Custom Load Indicator</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" type="text/css" href="../css/jsgrid.css" />
  9. <link rel="stylesheet" type="text/css" href="../css/theme.css" />
  10. <script src="http://cdnjs.cloudflare.com/ajax/libs/spin.js/2.3.1/spin.min.js"></script>
  11. <script src="../external/jquery/jquery-1.8.3.js"></script>
  12. <script src="../src/jsgrid.core.js"></script>
  13. <script src="../src/jsgrid.load-indicator.js"></script>
  14. <script src="../src/jsgrid.load-strategies.js"></script>
  15. <script src="../src/jsgrid.sort-strategies.js"></script>
  16. <script src="../src/jsgrid.field.js"></script>
  17. <script src="../src/fields/jsgrid.field.text.js"></script>
  18. <script src="../src/fields/jsgrid.field.textarea.js"></script>
  19. <script src="../src/fields/jsgrid.field.number.js"></script>
  20. <style>
  21. .rating {
  22. color: #F8CA03;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <h1>Custom Load Indicator</h1>
  28. <div id="jsGrid"></div>
  29. <script>
  30. $(function() {
  31. $("#jsGrid").jsGrid({
  32. height: "50%",
  33. width: "100%",
  34. sorting: true,
  35. paging: false,
  36. autoload: true,
  37. controller: {
  38. loadData: function() {
  39. var d = $.Deferred();
  40. $.ajax({
  41. url: "http://services.odata.org/V3/(S(3mnweai3qldmghnzfshavfok))/OData/OData.svc/Products",
  42. dataType: "json"
  43. }).done(function(response) {
  44. setTimeout(function() {
  45. d.resolve(response.value);
  46. }, 2000);
  47. });
  48. return d.promise();
  49. }
  50. },
  51. loadIndicator: function(config) {
  52. var container = config.container[0];
  53. var spinner = new Spinner();
  54. return {
  55. show: function() {
  56. spinner.spin(container);
  57. },
  58. hide: function() {
  59. spinner.stop();
  60. }
  61. };
  62. },
  63. fields: [
  64. { name: "Name", type: "text" },
  65. { name: "Description", type: "textarea", width: 150 },
  66. { name: "Rating", type: "number", width: 50, align: "center",
  67. itemTemplate: function(value) {
  68. return $("<div>").addClass("rating").append(Array(value + 1).join("&#9733;"));
  69. }
  70. },
  71. { name: "Price", type: "number", width: 50,
  72. itemTemplate: function(value) {
  73. return value.toFixed(2) + "$"; }
  74. }
  75. ]
  76. });
  77. });
  78. </script>
  79. </body>
  80. </html>