Ошибка добавления нескольких элементов управления в заполнитель, возвращаемый функцией - PullRequest
0 голосов
/ 09 июля 2009

У меня есть функция, которая создает несколько элементов управления. В основном поля ввода и кнопка с динамическими данными для кнопки оплаты Amazon.

Как добавить эти элементы управления в заполнитель, чтобы они отображались на странице?

Я попытался создать заполнитель внутри функции, добавить элементы управления и вернуть заполнитель.

plhCart = returnedPlaceHolder()

Элементы управления не отображались, однако, когда plhCart.Controls.Count значение было правильным.

Это функция, создающая элементы управления и добавляющая их к объекту-заполнителю:

    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

Сейчас я использую предложение Стива Темпла и добавляю этот возвращенный заполнитель к заполнителю на моей странице, используя

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

Это работает нормально, и, вероятно, лучше, чем то, что я придумал прошлой ночью. Моим оригинальным решением было создать элементы управления и вернуть их как массив system.array. Затем цикл по массиву, чтобы добавить каждый элемент управления в заполнитель.

Ответы [ 2 ]

1 голос
/ 10 июля 2009

Трудно точно понять, в чем проблема, не зная немного больше.

Добавьте элементы управления в методе Page_Init следующим образом:

plhCart.Controls.Add (returnedPlaceHolder ());

И это должно добавить их и отобразить на странице

0 голосов
/ 09 июля 2009

ASP.NET Страница жизненного цикла хитрый .

...