Jak dostosować szerokość kolumny jqgrid PO załadowaniu danych?

Moim ostatecznym celem jest posiadanie jqgrid do automatycznego ustawiania szerokości kolumny zgodnie z zawartością danych. Jako część ścieżki, którą należy tam przejść, muszę być w stanie ustawić szerokość kolumny PO załadowaniu danych, kiedy to poznam maksymalną szerokość każdej kolumny. Ale skoro znam maksymalną szerokość kolumny, jak mogę ustawić szerokość każdej kolumny w zdarzeniu „loadComplete” i odświeżyć siatkę o nową szerokość każdej kolumny? Większość słupków, które znalazłem w sieci, dotyczy całkowitej szerokości siatki. Chcę ustawić szerokość każdej kolumny i automatycznie wyświetlić poziomy pasek przewijania, jeśli całkowita szerokość jest zbyt długa.

Aktualizacja: Po obejrzeniu niesamowitego demo Olega, zakodowałem to w samym dqGrid (4.5.4). Oto co zrobiłem:

Znajdź funkcję

addJSONData = function(data,t, rcnt, more, adjust) {

następnie znajdź w tej funkcji

            for (j=0;j<rowReader.length;j++) {
                v = $.jgrid.getAccessor(cur,rowReader[j]);
                rd[ts.p.colModel[j+gi+si+ni].name] = v;
                rowData.push(addCell(idr, v, j + gi + si + ni, i + rcnt, cur, rd));

                // my addtion: stores the largest header size
                var newWidth = v.length * 6; 
                if (ts.grid.headers[j].width < newWidth) {
                    ts.grid.headers[j].width = newWidth;
                }
            }

Następnie tuż przed końcem} tej funkcji dodaj następujące

        // my addition: invoke the resizing logic
        for (j = 0; j < rowReader.length; j++) {
            ts.grid.resizing = { idx: j };
            ts.grid.dragEnd();
        }

Następnie siatka dostosuje szerokość każdej kolumny zgodnie z zawartością. Jedną z rzeczy, na które wciąż potrzebuję pomocy, jest precyzyjne obliczanie nowej szerokości. Moje aktualne obliczenia na stałe

var newWidth = v.length * 6;

oczywiście nie jest zbyt skalowalny.

questionAnswers(1)

yourAnswerToTheQuestion