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.

War es hilfreich?

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 .

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