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

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

  •  12-09-2019
  •  | 
  •  

Вопрос

У меня есть функция, которая создает несколько элементов управления.В основном поля ввода и кнопка изображения с динамическими данными для кнопки оплаты 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.Затем просматриваем массив, чтобы добавить каждый элемент управления в заполнитель.

Это было полезно?

Решение

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

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

plhCart.Controls.Add(returnedPlaceHolder());

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

Другие советы

Жизненный цикл страницы ASP.NET сложный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top