Emisión de la adición de varios controles para marcador de posición devuelto por la función

StackOverflow https://stackoverflow.com/questions/1101723

  •  12-09-2019
  •  | 
  •  

Pregunta

Tengo una función que crea múltiples controles. Principalmente campos de entrada y un ImageButton con los datos dinámicos para un botón de pago de Amazon.

¿Cómo puedo añadir estos controles para un marcador de posición para que se prestan en la página?

He intentado crear un marcador de posición dentro de la función, añadiendo controles y devolver el marcador de posición.

plhCart = returnedPlaceHolder()

Los controles no hacen sin embargo cuando hacer un plhCart.Controls.Count el valor era correcta.

Esta es la función de creación de los controles y la adición de ellos a un objeto marcador de posición:

    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

Ahora estoy usando la sugerencia de Steve templo y la adición de este marcador de posición devueltos al marcador de posición en mi página utilizando

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

Esto está trabajando muy bien, y probablemente lo mejor que se me ocurrió anoche. Mi solución original era crear los controles y devolverlos como System.Array. Entonces bucle a través de la matriz para añadir cada control al marcador de posición.

¿Fue útil?

Solución

Es difícil saber exactamente cuál es el problema sin saber un poco más.

Añadir los controles en el método Page_Init este modo:

  

plhCart.Controls.Add (returnedPlaceHolder ());

Y eso debería añadir ellos y hacerlos en la página

Otros consejos

página ASP.NET ciclo de vida es complicado .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top