2024-10-10
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
(function(jsGrid, $, undefined) {
|
||||
|
||||
var Field = jsGrid.Field;
|
||||
|
||||
function CheckboxField(config) {
|
||||
Field.call(this, config);
|
||||
}
|
||||
|
||||
CheckboxField.prototype = new Field({
|
||||
|
||||
sorter: "number",
|
||||
align: "center",
|
||||
autosearch: true,
|
||||
|
||||
itemTemplate: function(value) {
|
||||
return this._createCheckbox().prop({
|
||||
checked: value,
|
||||
disabled: true
|
||||
});
|
||||
},
|
||||
|
||||
filterTemplate: function() {
|
||||
if(!this.filtering)
|
||||
return "";
|
||||
|
||||
var grid = this._grid,
|
||||
$result = this.filterControl = this._createCheckbox();
|
||||
|
||||
$result.prop({
|
||||
readOnly: true,
|
||||
indeterminate: true
|
||||
});
|
||||
|
||||
$result.on("click", function() {
|
||||
var $cb = $(this);
|
||||
|
||||
if($cb.prop("readOnly")) {
|
||||
$cb.prop({
|
||||
checked: false,
|
||||
readOnly: false
|
||||
});
|
||||
}
|
||||
else if(!$cb.prop("checked")) {
|
||||
$cb.prop({
|
||||
readOnly: true,
|
||||
indeterminate: true
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if(this.autosearch) {
|
||||
$result.on("click", function() {
|
||||
grid.search();
|
||||
});
|
||||
}
|
||||
|
||||
return $result;
|
||||
},
|
||||
|
||||
insertTemplate: function() {
|
||||
if(!this.inserting)
|
||||
return "";
|
||||
|
||||
return this.insertControl = this._createCheckbox();
|
||||
},
|
||||
|
||||
editTemplate: function(value) {
|
||||
if(!this.editing)
|
||||
return this.itemTemplate.apply(this, arguments);
|
||||
|
||||
var $result = this.editControl = this._createCheckbox();
|
||||
$result.prop("checked", value);
|
||||
return $result;
|
||||
},
|
||||
|
||||
filterValue: function() {
|
||||
return this.filterControl.get(0).indeterminate
|
||||
? undefined
|
||||
: this.filterControl.is(":checked");
|
||||
},
|
||||
|
||||
insertValue: function() {
|
||||
return this.insertControl.is(":checked");
|
||||
},
|
||||
|
||||
editValue: function() {
|
||||
return this.editControl.is(":checked");
|
||||
},
|
||||
|
||||
_createCheckbox: function() {
|
||||
return $("<input>").attr("type", "checkbox");
|
||||
}
|
||||
});
|
||||
|
||||
jsGrid.fields.checkbox = jsGrid.CheckboxField = CheckboxField;
|
||||
|
||||
}(jsGrid, jQuery));
|
||||
Reference in New Issue
Block a user