Als ich mir selbst die Webentwicklung beibrachte, gab es kein sogenanntes DIV/CSS-Layout und die Welt wurde vom Tabellenlayout dominiert. Damals stellte sich die Frage: Wie fülle ich die leeren Zellen im Raster aus? ——Das sind die Kopfschmerzen, die ich hatte, als ich an der Produktseite meines Unternehmens arbeitete. Da ich kein Programmierer bin, bin ich bei Problemen, die ein bisschen mit Algorithmen zu tun haben, ratlos, haha. Ich kann mich übrigens erinnern, dass mir der Paging-Algorithmus einige Schwierigkeiten bereitete. Unter dem sogenannten Grid versteht man eine Tabelle mit 3 Zeilen x 4 Spalten = insgesamt 12 Zellen. Wenn nur 10 Produkte vorhanden sind, werden nur 10 Zellen der Tabelle ausgefüllt und der Rest bleibt leer. Obwohl sie leer sind, müssen die <td></td>-Elemente gerendert werden, da die Tabelle sonst verzerrt aussieht. Natürlich ist es möglich, es fest zu codieren, aber das Problem besteht darin, dass Tabellen von ASP dynamisch gerendert werden. Daher ist die Berechnung und Anzeige des leeren TD ein Problem. Mir sind damals mehrere Methoden eingefallen, die im Nachhinein natürlich nicht sehr sinnvoll waren, aber egal, ich musste es einfach mal probieren… Hauptsache, es lässt sich darstellen… haha. Später, im Zeitalter von DIV/CSS, wurde Table verworfen. Dem Algorithmus ist es also egal. ——In einem späteren Projekt stellte ich fest, dass das Tabellenlayout immer noch anwendbar war, also dachte ich über dieses kleine Problem nach. Der Code zur dynamischen Steuerung mit JS lautet wie folgt: /** * @class renderTable * Geben Sie ein Array und die Anzahl der Spalten ein, um eine Tabellenmarkierung zu generieren. * @param {Array} Liste * @param {Number} Spalten * @param {Funktion} getValue */ definieren(Funktion(erfordern, Exporte, Modul) { module.exports = Funktion (Liste, Spalten, getValue) { diese.liste = Liste; diese.cols = cols || 5; dies.getValue = getValue || dies.getValue; } module.exports.prototype = (neue Funktion(){ this.render = Funktion(Liste){ Liste = Liste || diese.Liste; var len = Liste.Länge; var cols = this.cols; // Anzahl der Ziffern var rows; var Rest = Länge % Spalten; var htmls = []; Zeilen = Länge / Rest; if(remainder == 0){ // Kann ohne Rest geteilt und direkt verarbeitet werden list.forEach(addTr.bind({ Pässe: Pässe, html: html, getValue : dies.getValue })); }else{ // Rest verarbeiten var remainnerArr = list.splice(list.length - remainder); Liste.fürJeden(addTr.bind({ Pässe: Pässe, html: html, getValue : dies.getValue })); // Füllen Sie die Lücken aus. var emptyArr = new Array(cols - remainnerArr.length); emptyArr = emptyArr.join('leer'); emptyArr = emptyArr.split('leer'); // Rest + leerer Raum remainnerArr = remainnerArr.concat(emptyArr); wenn(restArr.length != cols){ throw 'Die Länge der letzten Zeile ist falsch! Die Länge sollte ' + Spalten sein; } remainnerArr.forEach(addTr.bind({ Pässe: Pässe, html: html, getValue : dies.getValue })); } gibt addTable zurück (htmls.join('')); } /** * Die Standardfunktion zum Abrufen des angezeigten Werts. Diese Funktion sollte normalerweise überschrieben werden. * @param {Gemischt} * @return {String} */ this.getValue = Funktion(Daten){ Daten zurückgeben; } /** * Fügen Sie für jeden Wert ein <td></td> hinzu. Wenn eine Zeile voll ist, fügen Sie ein </tr></tr> hinzu. * @param {Gemischtes} Element * @param {Zahl} i * @param {Array} arr */ Funktion addTr(Element, i, arr){ var html = '<td>' + this.getValue(item) + '</td>'; wenn(i == 0){ html = "<tr>" + html; }sonst wenn((i + 1) % this.cols == 0 && i != 0){ html += '</tr><tr>'; }sonst wenn(i == arr.length){ html += '</tr>'; } dies.htmls.push(html); } /** * * @param {String} html */ Funktion Tabelle hinzufügen (html) { gibt „<Tabelle>“ + html + „</Tabelle>“ zurück; // var Tabelle = document.createElement('Tabelle'); // Tabelle.innerHTML = html; // Tabelle.Rand="1"; // Dokument.Body.AppendChild(Tabelle); } }); }); Sie denken vielleicht, dass mir dieses Problem spontan einfällt … Aber ich war damals gerade dabei, meine Karriere zu ändern … Jedes Problem mit ein wenig „technischem Inhalt“ wurde für mich zu einem Stolperstein … 18.05.2019 JSTL-Methode: <% //Leere Zellen vervollständigen String tds = ""; int maxTds = 9; Liste<?> Liste = (Liste<?>)request.getAttribute("Liste"); für(int i = 0; i < (maxTds - list.size()); i++ ) { tds += "<td></td>"; } Anfrage.setAttribute("tds", tds); %> <Tabelle> <tr> <c:foreach Elemente="${Liste}" var="Element"> <td> <h3>${item.name}----${totalCount}</h3> <p></p> <div></div> </td> <c:if test="${((currentIndex + 1) % 3) == 0}"> </tr> <tr> </c:if> <c:if test="${((currentIndex + 1) == totalCount) && (totalCount != 9)}"> ${tds} </c:if> </c:foreach> </tr> </Tabelle> Dies ist das Ende dieses Artikels zum Ausfüllen leerer HTML-Tabellenzellen. Weitere Informationen zum Ausfüllen leerer HTML-Tabellenzellen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! |
<<: Lösung für die Lücke zwischen Divs
>>: Schiebemenü mit CSS3 implementiert
Inhaltsverzeichnis 1. Docker-Installation auf dem...
Inhaltsverzeichnis 1. JDK installieren Manuelle I...
Inhaltsverzeichnis Vorwort Text 1. Abschluss 1.1 ...
In diesem Artikelbeispiel wird der spezifische Co...
html <!DOCTYPE html> <html lang="de...
Inhaltsverzeichnis [Siehe ein Beispiel]: [Der urs...
1. Hintergrund Schaltflächen werden sehr häufig v...
Erstellen Sie zunächst ein spezielles Projektverz...
Inhaltsverzeichnis Definition Konstruktorkörper s...
1. Herunterladen und entpacken 1. Einführung in Z...
Vorwort: Verwenden Sie das Element-Framework in v...
MySQL 5.7.8 und höher unterstützt nun einen nativ...
GitHub-Adresse, Sie können es mit einem Stern mar...
Die folgenden CSS-Klassennamen, die mit einer Zah...
Der Server meldet einen Fehler 502 beim Synchroni...