jqgrid-patch.js
2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// przerobiony fragment kodu jqgrid
$.jgrid.extend({
//ostatnio zaznaczony wiersz
lastSelectedId: undefined,
//pomocnicza zmienna : jeśli true, to po załadowaniu grida
//należy odpalić setSelection z parametrem lastSelectedId
//uwaga: to nie to samo co odpalić scrollToLastSelection
setOnComplete: false,
//widok z funkcją mówiącą, który w kolejności będzie wiersz o danym id
findIdUrl: undefined,
//scrolluje do wiersza który jest 'row'-ty od góry, przy założeniu
//że wszystkich wierszy jest rowcount
scrollToRow: function (row, rowcount) {
"use strict";
return this.each(function () {
var clientHeight = $(this.grid.bDiv)[0].clientHeight;
var scrollRange = $(this.grid.bDiv)[0].scrollHeight;
//Załóżmy, że wiersze mają jedną wysokość...
var rowTop = Math.round((row - 1) * (scrollRange / rowcount));
$(this.grid.bDiv)[0].scrollTop = rowTop - Math.round(clientHeight / 2);
});
},
//scrolls to row and sets selection
scrollAndSet: function (id, row, count) {
"use strict";
return this.each(function () {
var $t = this;
$($t).jqGrid('setGridParam', {'lastSelectedId': id});
if ($t.rows.namedItem(id)) {
$($t).jqGrid('setSelection', id);
}
else {//odwlekamy zaznaczanie do załadowania (complete)
$($t).jqGrid('setGridParam', {'setOnComplete': true});
}
$($t).jqGrid('scrollToRow', row, count);
});
},
scrollToId: function (id) {
"use strict";
return this.each(function () {
var $t = this;
var data = {
id: id
};
$.extend(data, $($t).jqGrid('getGridParam', 'postData'));
$.get($t.p.findIdUrl, data, function (resp) {
var rowIndex = resp.rowIndex;
var recordsCount = resp.records;
$($t).jqGrid('scrollAndSet', id, rowIndex, recordsCount);
});
});
},
//wracamy do ostatniego zaznaczenia
scrollToLastSelection: function () {
"use strict";
return this.each(function () {
if (this.p.lastSelectedId !== undefined) {
$(this).jqGrid('scrollToId', this.p.lastSelectedId);
}
});
}
});