【发布时间】:2011-08-31 15:59:31
【问题描述】:
情况如下:我的页面上有多个动态创建的更新面板,所以我想我会编写一种方法来处理每个更新面板的所有加载。
我的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,我想知道这是否会发生 - 就像我可能正在重新创建控件但没有再次绑定它们或类似的东西。明天我会试试詹姆斯约翰逊的答案,看看我的进展如何。
标签: javascript asp.net vb.net updatepanel postback