70 lines
1.7 KiB
JavaScript
70 lines
1.7 KiB
JavaScript
(function(jsGrid, $, undefined) {
|
|
|
|
var Field = jsGrid.Field;
|
|
|
|
function TextField(config) {
|
|
Field.call(this, config);
|
|
}
|
|
|
|
TextField.prototype = new Field({
|
|
|
|
autosearch: true,
|
|
readOnly: false,
|
|
|
|
filterTemplate: function() {
|
|
if(!this.filtering)
|
|
return "";
|
|
|
|
var grid = this._grid,
|
|
$result = this.filterControl = this._createTextBox();
|
|
|
|
if(this.autosearch) {
|
|
$result.on("keypress", function(e) {
|
|
if(e.which === 13) {
|
|
grid.search();
|
|
e.preventDefault();
|
|
}
|
|
});
|
|
}
|
|
|
|
return $result;
|
|
},
|
|
|
|
insertTemplate: function() {
|
|
if(!this.inserting)
|
|
return "";
|
|
|
|
return this.insertControl = this._createTextBox();
|
|
},
|
|
|
|
editTemplate: function(value) {
|
|
if(!this.editing)
|
|
return this.itemTemplate.apply(this, arguments);
|
|
|
|
var $result = this.editControl = this._createTextBox();
|
|
$result.val(value);
|
|
return $result;
|
|
},
|
|
|
|
filterValue: function() {
|
|
return this.filterControl.val();
|
|
},
|
|
|
|
insertValue: function() {
|
|
return this.insertControl.val();
|
|
},
|
|
|
|
editValue: function() {
|
|
return this.editControl.val();
|
|
},
|
|
|
|
_createTextBox: function() {
|
|
return $("<input>").attr("type", "text")
|
|
.prop("readonly", !!this.readOnly);
|
|
}
|
|
});
|
|
|
|
jsGrid.fields.text = jsGrid.TextField = TextField;
|
|
|
|
}(jsGrid, jQuery));
|