当用户从菜单中选择一个项目时,我有一个带有占位符控件和菜单控件的asp.net网页.它将根据菜单项的值动态加载控件.
我加载了控件但如果我点击链接按钮或Web用户控件上的任何内容(.ascx),Web用户控件(.ascx)将消失.我不知道造成这种情况的原因.有人可以看看我的代码,看看我错过了什么?
Protected Sub Menu1_Click(ByVal sender As Object, ByVal e As EventArgs) Select Case Me.Menu1.SelectedValue Case "CustMasterMain" Dim ccCustMasterMaint As UserControl = CType(Page.LoadControl("~/Controls/Franchise/CustMasterMaintControl.ascx"), UserControl) Me.phHolder1.Controls.Add(ccCustMasterMaint) Case "AcctRecInq" Dim ccAcctRecInq As UserControl = CType(Page.LoadControl("~/Controls/Franchise/custAccountsReceivableInquiry.ascx"), UserControl) Me.phHolder1.Controls.Add(ccAcctRecInq) End Select End Sub
Joel Coehoor.. 10
请记住,每次进行回发时,您都在使用页面类的全新实例.如果将控件添加到页面类的上一个实例的控件集合中,则需要为后面的每个回发再次添加该控件.
此外,如果要为控件还原ViewState,则需要在Load事件之前将其添加到页面.这意味着在Init或PreInit期间添加控件.
请记住,每次进行回发时,您都在使用页面类的全新实例.如果将控件添加到页面类的上一个实例的控件集合中,则需要为后面的每个回发再次添加该控件.
此外,如果要为控件还原ViewState,则需要在Load事件之前将其添加到页面.这意味着在Init或PreInit期间添加控件.