Asp.net 为自定义控件动态创建UpdatePanel会导致完全回发

Asp.net 为自定义控件动态创建UpdatePanel会导致完全回发,asp.net,ajax,vb.net,updatepanel,Asp.net,Ajax,Vb.net,Updatepanel,这件事我已经忙了一天了。我需要创建一个自定义控件,为了概念验证,我正在尝试创建UpdatePanel并在其中添加一个按钮它总是导致一整页回发 代码(自定义控件): 导入系统文本 导入System.Web.UI 导入System.Web.UI.WebControl 导入System.ComponentModel 导入AjaxControlToolkit _ 公共类HMXICDSearchTool 继承HMXISBaseCompositeControl 容器中的工具 私有常量默认宽度为整数=650

这件事我已经忙了一天了。我需要创建一个自定义控件,为了概念验证,我正在尝试创建UpdatePanel并在其中添加一个按钮它总是导致一整页回发

代码(自定义控件):

导入系统文本
导入System.Web.UI
导入System.Web.UI.WebControl
导入System.ComponentModel
导入AjaxControlToolkit
_
公共类HMXICDSearchTool
继承HMXISBaseCompositeControl
容器中的工具
私有常量默认宽度为整数=650
私有常量默认高度为整数=450
Private _pnlupdateas UpdatePanel=无
私有_btntestas Button=无
私有_lbl作为标签=无
受保护的覆盖子CreateChildControls()
MyBase.CreateChildControls()
_pnlUpdate=newupdatePanel()
使用_pnlUpdate
.ID=“pnlUpdate”
.ChildrenAsTriggers=False
.UpdateMode=UpdatePanelUpdateMode.Conditional
以
_btnTest=新建按钮()
有_btnTest
.ID=“btnTest”
.Text=“测试按钮”
.CausesValidation=False
AddHandler.Click,地址Btn\u Click
以
_lbl=新标签()
与_lbl
.ID=“lbl”
.Text=“你好!”
以
_pnlUpdate.ContentTemplateContainer.Controls.Add(_btnTest)
_pnlUpdate.ContentTemplateContainer.Controls.Add(\u lbl)
Dim aTrigger As AsyncPostBackTrigger=新的AsyncPostBackTrigger()
与阿蒂格
.ControlID=“btnTest”
.EventName=“单击”
以
Me.\u pnlUpdate.Triggers.Add(aTrigger)
Me.Controls.Add(_pnlUpdate)
Me.Style.Add(“背景色”、“红色”)
身高=500
宽度=500
端接头
受保护的子Btn_单击(ByVal Sender作为对象,ByVal e作为System.EventArgs)
如果不是Me.Page.IsPostBack,那么
Me.\u lbl.Text=“异步回发。”
如果结束
端接头
末级

任何想法都将不胜感激。我曾尝试切换ChildrenaStrigger,将此代码放入我的.Load中,以及其他内容。

它一直在执行部分回发。

我犯了一个错误,测试它是否是这样的部分回发:

If Page.IsPostBack Then
   'something here
End
我什么时候应该检查这个

Me.ScriptManager.IsInAsyncPostback
此:
Page.IsPostBack
将为true,即使它正在执行部分回发

Me.ScriptManager.IsInAsyncPostback