我有一个带有 updatePanel 的页面....
<asp:UpdatePanel runat="server" ID="up1" UpdateMode="Conditional" OnLoad="up1_Load">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
我还有一个用户控件(出于本示例的目的,此处已大大简化)...
用户控件标记:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="CtlParts.ascx.vb" Inherits="myProj.myProj.UserControls.ctlParts" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<asp:textbox runat="server" id="txtTest"></asp:textbox>
我正在尝试将用户控件动态添加到更新面板(遵循本指南)....
表格 VB
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ctl As New UserControls.ctlParts
ctl.ID = "ctlParts1"
up1.ContentTemplateContainer.Controls.Add(ctl)
End Sub
它似乎可以工作,因为没有错误,我可以在更新面板的加载事件中访问用户控件本身......
表格 VB
Public Sub up1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles up1.Load
'Finds this control ok
Dim ctl As UserControls.ctlParts = DirectCast(sender, System.Web.UI.UpdatePanel).FindControl("ctlParts1")
ctl.getTextBoxContent()
End Sub
但是,我无法访问用户控件上的任何控件.....
用户控制 VB:
Public Sub getTextBoxContent()
return txtTest.text 'This throws an error- txtTest is nothing
End Sub
任何人都知道为什么会这样。我究竟做错了什么?