문제는 기능별로 반환 된 자리 표시 자에게 여러 컨트롤을 추가합니다

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

  •  12-09-2019
  •  | 
  •  

문제

여러 컨트롤을 생성하는 기능이 있습니다. 주로 Amazon 결제 버튼에 대한 동적 데이터가있는 입력 필드 및 ImageButton.

이 컨트롤을 자리 표시 자에 추가하여 페이지에서 렌더링 할 수있는 방법은 무엇입니까?

함수 내부에서 자리 표시자를 만들고 컨트롤을 추가하고 자리 표시자를 반환하려고했습니다.

plhCart = returnedPlaceHolder()

그러나 plhcart.controls를 때는 컨트롤이 렌더링되지 않았습니다.

이것은 컨트롤을 생성하고 자리 표시 자 개체에 추가하는 기능입니다.

    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

나는 지금 Steve Temple의 제안을 사용하고 있으며이 반환 된 자리 표시자를 사용하여 내 페이지의 자리 표시 자에 추가합니다.

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

이것은 잘 작동하며 어젯밤에 내가 생각해 낸 것보다 더 나은 것입니다. 저의 원래 해결책은 컨트롤을 만들고 시스템으로 반환하는 것이 었습니다. 그런 다음 배열을 통해 반복하여 자리 표시 자에게 각 컨트롤을 추가하십시오.

도움이 되었습니까?

해결책

조금 더 알지 못하고 문제가 무엇인지 정확히 알기가 어렵습니다.

Page_Init 메소드에서 컨트롤을 추가하십시오.

plhcart.controls.add (ReturnedPlaceHolder ());

그리고 그것들을 추가하고 페이지에 렌더링해야합니다.

다른 팁

ASP.NET 페이지 라이프 사이클입니다 교활한.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top