2016-01-27 82 views
1

我加入这样一个小组,我的web应用程序:找到动态添加面板

For i = 1 To amountOfRechnungspositionen + 1 
    Dim pnlPositon As Panel = New Panel 
    pnlPositon.ID = "pnlPositon" & i 
    pnlRechungsposition.Controls.Add(pnlPositon) 
    ... 
Next 

现在,如果我的onclick按钮,我想删除此面板。 这是我的代码。

Private Sub imgDelRechnungsPosition_Click(sender As Object, e As ImageClickEventArgs) Handles imgDelRechnungsPosition.Click 

    amountOfRechnungspositionen = Convert.ToInt32(hfAmountofRechnungspositionen.Value) 

    Dim fcpnlPositon As Panel = DirectCast(pnlRechungsposition.FindControl("placeholderID$pnlPositon" + amountOfRechnungspositionen.ToString()), Panel) 
    fcpnlPositon.Dispose() 

    hfAmountofRechnungspositionen.Value = Convert.ToString(amountOfRechnungspositionen - 1) 

End Sub 

但是fcpnlPositon是Nothing。 Waht我做错了?

谢谢你,阅读。

+0

您是否在每次回发中添加面板?记住动态控件会丢失后每个_postback_ –

+0

在回发我这样做:如果不是IsPostBack然后genNeueRechnungsPosition()结束如果编辑:哦,sry功能genNeueRechnungsPosition是添加面板的功能 – egolive

+0

什么是'genNeueRechnungsPosition'?动态添加面板的方法可能是?所以是的,你没有在每次回发上添加它们? –

回答

0

尝试使用:

CType(pnlRechungsposition.FindControl("pnlPositon" + 
      amountOfRechnungspositionen.ToString()), Panel) 

占位符文本只适用于客户端的标记,因此要使用直接ID属性。

+0

不,它不工作。不要收回任何东西:/ – egolive

+0

您正在重建页面init上的面板列表,每次都正确吗?什么是pnlRechungsposition.Controls.Count属性从按钮点击返回。 –