2009-08-24 19 views
0

Wie kann ich Textfelder dynamisch erstellen, die von der Anzahl der Datenbankaufzeichnungen in asp.net abhängen? Zum Beispiel: Es gibt ein Schulprogramm, in dem Sie Prüfungspunkte von Schülern einfügen können und auch einige Klassen in der Schule. Sie wissen nicht, wie viele Personen vorhanden sind, und Sie sollten dynamisch Textfelder erstellen, um Prüfpunkte einzufügen.Wie dynamisch Textfelder erstellt werden, hängt von der Anzahl der Datenbankaufzeichnungen in asp.net ab?

Antwort

2

Das Seitensteuerelement, das Bedienfeldsteuerelement und einige andere Elemente verfügen über ein .Controls-Objekt, mit dem Sie der Seite dynamisch neue Steuerelemente hinzufügen können. Es wird dann etwas so einfaches wie:

Dim txtDynamic As New Textbox() 
Me.Page.Controls.Add(txtDynamic) 

Möglicherweise möchten Sie zusätzliche Eigenschaften zu den Kontrollen anzuwenden, in denen this MSDN article Besuche mit gibt die vollständige Angaben über Kontrollen hinzufügen.

+0

Danke Dillie, ich denke, das ist was ich suche :) Danke nochmal. –

0

Abhängig von der Art der Daten, die Sie in der TextBox verarbeiten müssen, könnten Sie leicht ein HTML-Literal-Steuerelement auf der Seite als Platzhalter haben. Dann fügen Sie in Ihrem Code hinter der Seite einfach den richtigen HTML-Code hinzu, um die Anzahl der benötigten TextBoxen zu erstellen und den resultierenden Code für Ihr HTML-Literal-Steuerelement festzulegen. Wenn Sie auf die Daten zugreifen müssen, können Sie einfach ein "runat = server" -Attribut zu allen standardmäßigen HTML-Textfeldsteuerelementen hinzufügen.

Dieser Ansatz gibt Ihnen ein wenig mehr Flexibilität, wie die Textfelder aussehen werden, ohne eine DataList oder etwas zu dieser Natur einrichten zu müssen.

+0

Ich weiß, dass ich hier zwei Antworten gepostet habe, aber ich denke, das wird "abfragen", um zu sehen, welcher Ansatz am besten funktioniert und von der Gruppe bevorzugt wird. –

1

+1 zu Dillie für die richtige Antwort.

Ich möchte hinzufügen, dass, wenn Sie dies tun möchten, Sie ein sehr gutes Verständnis der ASP.NET page lifecycle haben sollten. Es ist äußerst wichtig, dass Sie Ihre Steuerelemente zur richtigen Zeit erstellen, andernfalls sind sie nicht für die Seite verfügbar, auf der Ereignisse ausgelöst/mit Daten aus dem Postback gefüllt werden. Im Allgemeinen sollte dies während des Page_Init-Ereignisses sein (es ist eine Weile her, seit ich das getan habe!).

+0

+1 für den Seitenlebenszyklus (und danke für die Requisiten 8^D) Es ist sehr wichtig, sicherzustellen, wenn Sie diese Steuerelemente erstellen/verarbeiten, wie Will erklärt. –

Verwandte Themen