Forum
November 2nd, 2014
A
A
A
The forums are currently locked and only available for read only access
Topic RSS
Column minimal width
In some cases it would be great to have minimal width for columns. This is useful when grid has button columns, or size of column should be restricted by header + sort arrow.
My solution for this was extension method:
enableMinWidth: function() {
var $t = this[0];
if (!$t.grid) { return; }
$t.grid.dragMove = function(x) {
if (this.resizing) {
var diff = x.clientX - this.resizing.startX,
h = this.headers[this.resizing.idx],
mW = $t.p.colModel[this.resizing.idx].minWidth || 33,
newWidth = $t.p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn, nmWn;
if (newWidth > mW) {
this.curGbox.css({ left: this.resizing.sOL + diff });
if ($t.p.forceFit === true) {
hn = this.headers[this.resizing.idx + $t.p.nv];
nmWn = $t.p.colModel[this.resizing.idx + $t.p.nv].minWidth || 33;
nWn = $t.p.direction === "ltr" ? hn.width - diff : hn.width + diff;
if (nWn > nmWn) {
h.newWidth = newWidth;
hn.newWidth = nWn;
}
} else {
this.newWidth = $t.p.direction === "ltr" ? $t.p.tblwidth + diff : $t.p.tblwidth - diff;
h.newWidth = newWidth;
}
}
}
}
}
var $t = this[0];
if (!$t.grid) { return; }
$t.grid.dragMove = function(x) {
if (this.resizing) {
var diff = x.clientX - this.resizing.startX,
h = this.headers[this.resizing.idx],
mW = $t.p.colModel[this.resizing.idx].minWidth || 33,
newWidth = $t.p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn, nmWn;
if (newWidth > mW) {
this.curGbox.css({ left: this.resizing.sOL + diff });
if ($t.p.forceFit === true) {
hn = this.headers[this.resizing.idx + $t.p.nv];
nmWn = $t.p.colModel[this.resizing.idx + $t.p.nv].minWidth || 33;
nWn = $t.p.direction === "ltr" ? hn.width - diff : hn.width + diff;
if (nWn > nmWn) {
h.newWidth = newWidth;
hn.newWidth = nWn;
}
} else {
this.newWidth = $t.p.direction === "ltr" ? $t.p.tblwidth + diff : $t.p.tblwidth - diff;
h.newWidth = newWidth;
}
}
}
}
}
It is not perfect but it works.
It would be great to see something similar integrated in future releases of jqGrid.
Forum Timezone: Europe/Sofia
Most Users Ever Online: 715
Currently Online:
53 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66