2016-01-27 105 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屬性從按鈕點擊返回。 –