jsgrid.field.text.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. (function(jsGrid, $, undefined) {
  2. var Field = jsGrid.Field;
  3. function TextField(config) {
  4. Field.call(this, config);
  5. }
  6. TextField.prototype = new Field({
  7. autosearch: true,
  8. readOnly: false,
  9. filterTemplate: function() {
  10. if(!this.filtering)
  11. return "";
  12. var grid = this._grid,
  13. $result = this.filterControl = this._createTextBox();
  14. if(this.autosearch) {
  15. $result.on("keypress", function(e) {
  16. if(e.which === 13) {
  17. grid.search();
  18. e.preventDefault();
  19. }
  20. });
  21. }
  22. return $result;
  23. },
  24. insertTemplate: function() {
  25. if(!this.inserting)
  26. return "";
  27. return this.insertControl = this._createTextBox();
  28. },
  29. editTemplate: function(value) {
  30. if(!this.editing)
  31. return this.itemTemplate(value);
  32. var $result = this.editControl = this._createTextBox();
  33. $result.val(value);
  34. return $result;
  35. },
  36. filterValue: function() {
  37. return this.filterControl.val();
  38. },
  39. insertValue: function() {
  40. return this.insertControl.val();
  41. },
  42. editValue: function() {
  43. return this.editControl.val();
  44. },
  45. _createTextBox: function() {
  46. return $("<input>").attr("type", "text")
  47. .prop("readonly", !!this.readOnly);
  48. }
  49. });
  50. jsGrid.fields.text = jsGrid.TextField = TextField;
  51. }(jsGrid, jQuery));