Problem mehrere Steuerelemente Hinzufügen von Funktion Platzhalter zurück
-
12-09-2019 - |
Frage
Ich habe eine Funktion, die mehrere Steuerelemente erstellt. Vor allem Eingabefelder und eine Image mit dynamischen Daten für eine Amazon Zahlung Taste.
Wie kann ich diese Kontrollen auf einen Platzhalter hinzufügen, damit sie auf der Seite dargestellt werden?
Ich habe versucht, einen Platzhalter innerhalb der Funktion erstellen, Hinzufügen von Steuerelement und die Rückkehr der Platzhalter.
plhCart = returnedPlaceHolder()
Die Kontrollen jedoch nicht machen, wenn ein plhCart.Controls.Count tut der Wert korrekt war.
Dies ist die Funktion der Steuerelemente Erstellen und Hinzufügen von ihnen zu einem Platzhalter Objekt:
Protected Function GetPayNowWidgetForm(ByVal formHiddenInputs As SortedDictionary(Of [String], [String])) As PlaceHolder
Dim payButton As New ImageButton
Dim plhForm As New PlaceHolder
Dim counter As Integer = 1
payButton.ID = "imgPayButton"
payButton.PostBackUrl = "https://authorize.payments-sandbox.amazon.com/pba/paypipeline"
payButton.ImageUrl = "https://authorize.payments-sandbox.amazon.com/pba/images/GMPayNowWithAmazon.png"
plhForm.Controls.Add(payButton)
' Add the Key/Value pairs from formHiddenInputs
For Each kvp As KeyValuePair(Of [String], [String]) In formHiddenInputs
Dim hiddenField As HtmlControl = New HtmlControls.HtmlInputHidden
' Dim hiddenField As New HiddenField
hiddenField.Attributes.Add("name", kvp.Key)
hiddenField.Attributes.Add("value", kvp.Value)
plhForm.Controls.Add(hiddenField)
counter += 1
Next
Return plhForm
End Function
Ich bin jetzt mit Steve Temple Vorschlag und das Hinzufügen dieser zurück Platzhalter auf den Platzhalter auf meiner Seite mit
plhCart.Controls.Add(GetPayNowWidgetForm(...))
Das funktioniert gut, und wahrscheinlich besser als das, was ich mit dem letzten Nacht kam. Meine ursprüngliche Lösung war es, die Kontrollen und die Rückkehr sie als System.Array zu erstellen. Dann Looping durch die Anordnung jedes Steuerelement auf den Platzhalter hinzuzufügen.
Lösung
Es ist schwer, genau zu wissen, was das Problem ohne ist es, ein wenig mehr zu wissen.
Fügen Sie die Steuerelemente in der Page_Init Methode wie folgt:
plhCart.Controls.Add (returnedPlaceHolder ());
Und das sollte sie addieren und machen sie auf der Seite
Andere Tipps
ASP.NET Seite Lebenszyklus heikel .