以下是這種情況:我的頁面上有一個動態創建的更新面板,因此我想我會編寫一個方法來處理每個方法的所有加載。爲什麼__doPostBack()不會觸發我的綁定加載事件?
我Updatepanel
創作看起來是這樣的:
Dim newUpdp As New UpdatePanel
newUpdatep.ChildrenAsTriggers = False
newUpdatep.UpdateMode = UpdatePanelUpdateMode.Conditional
newUpdatep.ID = Guid.NewGuid.ToString
AddHandler newUpdatep.Load, AddressOf updatep_load_method
updatep_Holder.ContentTemplateContainer.Controls.Add(newUpdp)
updatep_Holder.Update()
這就造成了更新面板和結合其負載事件方法「updatep_load_method」。只要將Updatepanel
插入固定器中,就會調用此方法。方法代碼如下:
Private Sub updp_load_method(sender As UpdatePanel, e As System.EventArgs)
Dim div As New HtmlGenericControl("div")
div.InnerText = Date.Time.Now.ToString
sender.ContentTemplateContainer.Controls.Add(div)
sender.Update()
End Sub
稍後我想更新面板,並刷新時間。所以我使用javascript __doPostBack方法。根據Dave Ward,__doPostBack方法遵循整頁回發生命週期,所以我認爲我的更新面板的加載事件將被觸發,並且「updatep_load_method」將被該特定更新面板調用...
儘管部分回發發生,並且其他更新面板的加載事件被調用,我的綁定的不是。那麼這裏發生了什麼?
您是否在回覆中再次添加更新面板? – Tejs
@Tejs,我想知道這是否會發生 - 就像我可能會重新創建控件,但不會再綁定它們或類似的東西。我會明天嘗試詹姆斯約翰遜的回答,看看我如何繼續。 –