问题添加多个控件来占位符函数返回的
-
12-09-2019 - |
题
我有一个创建多个控件的功能。主要输入字段,并与亚马逊的支付按钮,动态数据的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页面生命周期是棘手
不隶属于 StackOverflow