2009-07-09 9 views
0

複数のコントロールを作成する関数があります。主に入力フィールドと、Amazonの支払いボタンの動的データを含む画像ボタン。関数によって返されるプレースホルダに複数のコントロールを追加する問題

これらのコントロールをプレースホルダに追加してページ上にレンダリングするにはどうすればよいですか?

私は、関数の中にプレースホルダを作成し、コントロールを追加してプレースホルダを返そうとしました。

ただし、plhCart.Controls.Countで値が正しい場合、コントロールはレンダリングされませんでした。

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です。

関連する問題