문제는 기능별로 반환 된 자리 표시 자에게 여러 컨트롤을 추가합니다
-
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 페이지 라이프 사이클입니다 교활한.
제휴하지 않습니다 StackOverflow