8 Stimmen

Dynamisches Hinzufügen eines Steuerelements zu einer Liste von Steuerelementen

Ich habe eine Webseite, auf der Benutzer Kundenkontaktinformationen eingeben müssen. Sie können von 0 bis zu einer unendlichen Anzahl von Kontakten eingeben.

Ich habe diese Seite Code auf Seite erstellt:

<ajaxToolkit:ToolkitScriptManager runat="Server" EnablePartialRendering="true" ID="ScriptManager1" />
<asp:PlaceHolder ID="phCustomerContacts" runat="server" EnableViewState="true">/asp:PlaceHolder>
<asp:LinkButton ID="btnAddContact" runat="server" OnClick="btnAddContact_Click" CssClass="LinkButton" Text="Add Contact"/>

In meinem Code dahinter habe ich dies hinzugefügt:

   public void btnAddContact_Click(object sender, EventArgs e)
    {
        IList<CustomerContactProfile> customerContacts = new List<CustomerContactProfile>();
        if (ViewState["CustomerContactList"] != null)
            customerContacts = (List<CustomerContactProfile>)ViewState["CustomerContactList"];
        CustomerContactProfile contactProfile = (CustomerContactProfile)LoadControl("~/Controls/Embedded/CustomerContactProfile.ascx");
        customerContacts.Add(contactProfile);

        foreach (CustomerContactProfile contact in customerContacts)
            phCustomerContacts.Controls.Add(contact);

        ViewState["CustomerContactList"] = customerContacts;
    }

Dieser Code funktioniert nicht, weil der ViewState nicht mit der Speicherung all dieser Steuerdaten umgehen kann. Allerdings kann ich nicht denken, einen anderen Weg, um die Steuerelemente zu speichern, die bereits hinzugefügt wurden.

Der Viewstate des asp:PlaceHolder Steuerelement speichert nichts, und ich brauche die Steuerelemente gespeichert werden, so dass, wenn ein Benutzer in einige Daten in das erste Steuerelement, dass die Daten nicht verloren gehen, wenn sie eine zweite hinzufügen und so weiter.

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