我有一个创建多个控件的功能。主要输入字段,并与亚马逊的支付按钮,动态数据的ImageButton。

如何添加这些控件的占位符所以他们在网页上呈现?

我试图创建函数内的占位符,添加控件并返回占位符。

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