以下是这种情况:我的页面上有一个动态创建的更新面板,因此我想我会编写一个方法来处理每个方法的所有加载。为什么__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,我想知道这是否会发生 - 就像我可能会重新创建控件,但不会再绑定它们或类似的东西。我会明天尝试詹姆斯约翰逊的回答,看看我如何继续。 –