2010-12-10 2 views
3

Ich versuche, ein Gitter mit jqgrid in einer HTML-Tabelle zu generieren. Ich bin dazu in der Lage, aber ich möchte eine Nachricht anzeigen, wenn keine Zeilen in der Tabelle gefunden werden. Wie kann ich das machen?jqGrid tableToGrid - Anzeige der Nachricht, wenn keine Zeilen in der Tabelle gefunden werden

Hier ist mein jQuery-Code ...

jQuery.extend(jQuery.jgrid.defaults, { 
       caption: "my list", 
       autowidth: true, 
       height: "100%", 
       hidegrid: false, 
       loadComplete: function() { 
        alert("Grid has been loaded"); 
       }, 
       colModel:[ 
        { name: 'date', index: 'date', width: 0, resizable: false }, 
        { name: 'icon', index: 'icon', width: 0, resizable: false }, 
        { name: 'shop', index: 'shop', width: 0, resizable: false }, 
        { name: 'delete', index: 'delete', width: 0, resizable: false } 
       ] 
      }); 
      tableToGrid("#item_table", { 
       colNames: ['Date', '', 'Shop', 'Delete'] 
      }); 

Antwort

6

Die Standard-Nachricht definiert in $.jgrid.defaults.emptyrecords (siehe grid.locale-en.js) wird nur bei Füllung jqGrid standardmäßig angezeigt werden, mit Remote-Daten aus dem Server geladen (siehe this answer). Der entsprechende Text (siehe grid.locale-en.js) "Keine Datensätze zur Ansicht" wird auf der rechten Seite der Statusleiste angezeigt.

In another answer habe ich gezeigt, wie erzwingen Anzeige des Textes im Falle von 'lokalen' gefüllten jqGrid (wie in Ihrem Fall) oder wie den entsprechenden Text im Körperbereich des Gitters anzuzeigen (siehe Demos aus der Antwort) . Sie können also dasselbe tun, wenn Sie eine vorhandene Tabelle in jqGrid mit Bezug auf tableToGrid konvertieren. Der Event-Handler beforeRequest kann dies entweder in der jQuery.jgrid.defaults definieren oder als eine zusätzliche Eigenschaft des zweiten Parameters der tableToGrid Funktion. Wenn Sie der zweiten Demo folgen, sollten Sie den Code der loadComplete-Funktion ändern, die Sie derzeit verwenden, um das div mit der Nachricht "no rows" im jqGrid-Textkörper anzuzeigen/auszublenden.

+0

Der Link in "eine andere Antwort" ist falsch: Es ist das gleiche wie "diese Antwort" -Link. Wo finde ich die referenzierte Antwort und den Code, der keine Nachricht im Gitternetz gefunden hat? – Andrus

+0

@Andrus: Danke! Ich habe den Link zu [der Antwort] (http://stackoverflow.com/a/4127666/315935) mit Demos aktualisiert. – Oleg

0

In der Tat ist es kein Fehler. Wenn Sie in jqGrid.css suchen Datei, die Sie, dass auf jede Zeile in der Tabelle zu finden ist Stil mit aufgesetztem „white-space: pre“

.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space:pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;} 

Wenn Sie diesen Stil entfernen (aus allen Klassen in/* Körper */Abschnitt) Dann wirst du gezwungen sein müssen, den Zelleninhalt in eine Zeile mit dem Tag zu setzen.

Verwandte Themen