2 Stimmen

Wiederholung von ASP.NET-Steuerelementen ohne Datenbindung

Ich habe eine ASP.NET-Seite, die die Möglichkeit bietet, dass Benutzer mehrere Datensätze eingeben können. Ich möchte eine Sammlung von Textfeldern mit einer Schaltfläche zum Hinzufügen darunter anzeigen. Jedes Mal, wenn ein Benutzer auf die Schaltfläche "Hinzufügen" klickt, wird der Seite eine neue, identische Sammlung von Textfeldern hinzugefügt. Wenn der Benutzer dann auf "Senden" klickt, kann jede Sammlung von Textfeldern untersucht, die Daten extrahiert und in der Datenbank gespeichert werden.

Beachten Sie, dass die Benutzer nur Daten in die Datenbank einfügen werden. Das Bearbeiten oder Aktualisieren von Datensätzen ist nicht erlaubt.

Das Problem ist, dass jedes asp.net-Steuerelement, das ich mir angesehen habe (Repeater, Formview, etc.) erfordert das Steuerelement databound sein. Allerdings würde ich lieber nicht haben diese. Ich möchte nur ein Steuerelement, um die Informationen zu sammeln, so dass ich durch sie am Ende lesen kann und tun meine eigenen Einfügen in die Datenbank. Irgendwelche Ideen, wie man dies leicht erreichen kann? Wenn nötig, werde ich mit Databinding zu einer Tabelle gehen, aber ich dachte, ich würde zuerst fragen.

1voto

teedyay Punkte 22763

Ich würde einen Repeater verwenden: Sie können ihn an eine Auflistung wie eine List<> binden - er muss nicht an etwas in der Datenbank gebunden sein.

1voto

HectorMac Punkte 5911

Nutzen Sie die Vorteile der Datenbindung, die von Steuerelementen wie Repeater, GridView und ListView geboten werden.

Verwenden Sie den Datenfluss, um die Steuerelemente zu füllen.

Verwenden Sie eine beliebige Methode, um die Datenbank vom Repeater usw. abzurufen und zu aktualisieren.

Damit die 2-Wege-Datenbindung funktioniert, müssten Sie sie ohnehin durch Code aktivieren.

Die von diesen Steuerelementen bereitgestellten Row/Item-Sammlungen erleichtern auch die Erstellung Ihres benutzerdefinierten Codes.

0voto

Julian de Wit Punkte 3074

Sie können eine for-Schleife in de aspx machen

    <% for (i=0;i<list.count;i++)
       {
          string name = "textbox" + i.ToString();
          string value = list[i].property;

%>
        <input type="text" name="<%= name %>" value="<%= value %>">
       <%}
    %>

Im Codebehind können Sie einfach die Variable Request.Form["textbox2"] nach dem Posting nach ihrem Wert fragen.

0voto

cjk Punkte 44394

Sie können beliebige Steuerelemente dynamisch zu einer Seite hinzufügen, so dass Sie über Ihr eigenes Array iterieren und das hinzufügen können, was Sie benötigen, ohne dass eine Datenbindung erforderlich ist.

0voto

Verwenden Sie jQuery, um Textboxen von der Client-Seite aus hinzuzufügen, und Sie werden auf der Server-Seite sammeln müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X