Domanda

Ho una funzione che crea più controlli. Principalmente campi di input e un ImageButton con i dati dinamici per un pulsante di pagamento di Amazon.

Come posso aggiungere questi controlli per un segnaposto in modo che siano resi sulla pagina?

Ho cercato di creare un segnaposto all'interno della funzione, l'aggiunta di controlli e restituendo il segnaposto.

plhCart = returnedPlaceHolder()

I controlli non rendono tuttavia quando fare un plhCart.Controls.Count il valore era corretta.

Questa è la funzione di creare i controlli e aggiungendoli a un oggetto segnaposto:

    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

Ora sto usando il suggerimento di Steve Tempio e l'aggiunta di questa restituito segnaposto per il segnaposto sulla mia pagina utilizzando

plhCart.Controls.Add(GetPayNowWidgetForm(...))

Questo sta lavorando bene, e probabilmente meglio di quello che mi è venuta la scorsa notte. La mia soluzione originale era quella di creare i controlli e restituirli come System.Array. Quindi scorrendo la matrice per aggiungere ciascun controllo al segnaposto.

È stato utile?

Soluzione

E 'difficile sapere esattamente quale sia il problema senza conoscere un po' di più.

Aggiungere i controlli nel metodo Page_Init in questo modo:

  

plhCart.Controls.Add (returnedPlaceHolder ());

E che li dovrebbe aggiungere e renderli nella pagina

Altri suggerimenti

pagina ASP.NET del ciclo di vita è difficile .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top