Frage

Irgendwie verwandt mit meinem andere Frage - Ich habe immer nur HTMLControls mit Runat = "Server" und Webcontrols widerlegt und bevorzugt die Kontrolle über das Markup, das generiert wird (einschließlich der IDs der Elemente usw.).

Was ist Ihr Vorschlag, beispielsweise den Inhalt einer Sammlung zu iterieren und eine Tabelle oder Liste zu generieren, ohne auf Datenbettzug oder Antwort zu greifen. Schreiben Sie in einer Schleife aus dem Code-Behind? Ich interessiere mich für die verschiedenen Ansätze zur Erstellung sauberer, wartbarer Code.

War es hilfreich?

Lösung

Wenn Sie "Datenbad" sagen, sprechen Sie von einem Datenbankergebnis, der an einen Gridview oder einen Repeater usw. über einen .bind () -Anruf eingestellt ist oder einfach nur eine ASP.NET -Serversteuerung (oder HTML -Serversteuerung) im Allgemeinen verwenden?

Denn wenn Sie nur die Verwendung von Serversteuerungen im Allgemeinen vermeiden möchten, aber auch keine Antwort verwenden möchten. Schreiben Sie auch in Ihren Optionen ernsthaft.

Persönlich, wenn Sie die Kontrolle über Markup wünschen, warum nicht einfach einen SQLDATAREADER oder etwas anderes durchlaufen und dann die Ergebnisse auf eine wörtliche Steuerung speichern, wobei er gegebenenfalls HTML verwendet. Dann innerhalb der Seite (wo immer die Daten angezeigt werden sollen) tun Sie es einfach:

 <asp:Literal ID="ltrResults" runat="server" />

Andere Tipps

Es gibt nichts, was Sie davon abhalten kann, Ihre Sammlung direkt auf Ihrer ASPX -Seite zu iterieren.

 <ul>
     <% foreach(Person person in this.People) {%>

         <li><%=person.Firstname %> <%=person.Lastname %></li>

     <% } %>
 </ul>

In diesem Beispiel ist Leute eine Listeneigenschaft in meinem Codebehind. Sie finden viele ASP.NET -MVC -Projekte, die diese Methode verwenden.

@Brownie ... ja, aber das sind Antwort. Schreiben Sie Aussagen ... Sie verwenden nur das Kurzformat

Inspiriert von dem ersten Vorschlag, habe ich auch versucht, einen Platzhalter zum ASPX hinzuzufügen und dann programmatisch untergeordnete Steuerelemente aus dem Code-Behind hinzuzufügen. Ich hoffe, ich kann eine Benutzerkontrolle für den sich wiederholenden Inhalt erstellen und es dann dem Platzhalter in einer Schleife hinzufügen. Auf diese Weise kann der UI -Code schön eingekapselt werden und sollte alle StringBuilder -Aktionen ausblenden.

Die Repeater -Steuerung wird genau für das verwendet, was Sie wollen. Es handelt sich um eine Serversteuerung, aber Sie geben an, welche HTML in den Vorlagen generiert wird. Sie machen Datenbank, aber ist das nicht nur eine Abkürzung für eine manuelle Schleife?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top