Lassen Sie jqGrid seinen Container füllen

8

Ich benutze das jQuery-Layout-Plugin und das jqGrid-Plugin in einem meiner Projekte und sie funktionieren großartig, bis auf ein kleines Problem ...

Ich möchte, dass das jqGrid vollständig den Bereich (jQuery-Layout-Bereich) ausfüllt, der es enthält. Wenn Sie die Größe des Bereichs ändern, sollte die Größe von jqGrid geändert werden. Wenn Sie den Bereich schließen, sollten Sie das jqGrid usw. ausblenden.

Sowohl jqGrid als auch jQuery Layout bieten Callbacks, aber wenn ich sie verwende, bricht das Seitenlayout schrecklich.

Hat jemand Erfahrung damit, jqGrid mit jQuery Layout zu mischen?

  1. Ссылка
  2. Ссылка
Horacio 27.05.2010, 08:59
quelle

3 Antworten

2

Das ist meine aktuelle Lösung:

Erstellen Sie zuerst eine Größenänderungsfunktion, die vom onresize-Ereignis aufgerufen wird:

%Vor%

Dann richten wir in Ihrem Layout das resize-Ereignis ein, um diese Methode aufzurufen:

%Vor%

Damit können Sie jqGrid in einen beliebigen Bereich Ihres Layouts einfügen, und die Größe wird so angepasst, dass sie in den Bereich passt, in dem sie sich befindet, wenn die Größe des mittleren Bereichs geändert wird.

  1. Ссылка
  2. Ссылка
  3. Ссылка
Horacio 28.05.2010 02:17
quelle
2

Ich benutze jqgrid 4.0 (über jquery struts 2 plugin) und jQuery layout plugin. Die vorherige Antwort funktioniert nicht für mich. Lediglich die Funktion resizeGrid war ein Problem. Ersetzen Sie einfach die obige Funktion resizeGrid . Dies wird nur die Größe eines Gitters ändern - das mit der ID gridtable .

%Vor%

#gridtable ist die ID des Tabellenelements, das Sie für jqgrid erstellen

%Vor%

Wenn Sie das jquery struts2-Plugin verwenden, wird das Gitter automatisch mithilfe von < script > blocks innerhalb von < body > generiert (nicht in Skriptblöcken innerhalb von < head > ). Also, wenn Sie layout() aufgerufen und triggerEventsOnLoad: true in < head > gesetzt haben, erhalten Sie einen Javascript Fehler. Um dies zu vermeiden, können Sie diesen Skriptblock irgendwo hinzufügen, nachdem Ihre Gitter deklariert wurden.

%Vor%

Wenn Sie mehr als ein Grid haben, können Sie mit einer Klasse, die Sie für das Tabellenelement definiert haben, auf sie zugreifen (siehe HTML-Snippet oben) und dann die resizeGrid -Methode für jedes von ihnen ausführen.

    
Rosh 18.05.2011 13:25
quelle

Tags und Links