2009-07-09 5 views
0

여러 컨트롤을 만드는 함수가 있습니다. 주로 Amazon 지불 버튼에 대한 동적 데이터가있는 필드 및 이미지 버튼을 입력하십시오.함수에서 반환 된 자리 표시 자에 여러 컨트롤 추가

이러한 컨트롤을 페이지에 렌더링되도록 어떻게 자리 표시 자에 추가 할 수 있습니까?

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

그러나 컨트롤이 렌더링되지 않았습니다.

plhCart.Controls.Add(GetPayNowWidgetForm(...)) 
를 사용하여 지금 스티브 사원의 제안을 사용하고

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 

이 내 페이지의 자리에 자리를 반환 추가 :

이 함수 컨트롤을 생성하고 개체 틀에 추가입니다

이것은 잘 작동하고 있으며 어젯밤에 생각한 것보다 나을 것입니다. 내 원래 솔루션 컨트롤을 만들고이를 system.array로 반환했습니다. 그런 다음 배열을 반복하면서 각 컨트롤을 자리 표시 자에 추가합니다.

+0

에서 그들을 렌더링해야합니까? 페이지에 자리 표시자를 추가하고 있습니까? – womp

답변

1

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

정도로 후 Page_Init 같은 방법으로 컨트롤을 추가

plhCart.Controls.Add (returnedPlaceHolder());

그리고 그 추가하고 페이지 우리는 코드의 자세한 내용을 볼 수

+0

어떤 이유로 든 반환 된 PlaceHolder를 페이지의 자리 표시 자에 컨트롤로 추가하지 않은 것 같습니다. – Gthompson83

0

ASP.NET 페이지 수명주기는 tricky입니다.

관련 문제