我在用户控件表单上有一个字段“x”,它包含在 aspx 页面和使用 SharePoint 母版页的页面上。我试图在我的代码中的 aspx 页面上找到字段 x,但它会引发“未设置对象引用”错误。我已经尝试过,但没有任何效果,
((TextBox)Page.Master.FindControl("PlaceHolderMain").FindControl("Experience").FindControl("x")).Text
((TextBox)this.FindControl("x")).Text
((TextBox)Page.Master.FindControl("PlaceHolderMain").FindControl("x")).Text
我可以在页面源代码中找到该字段,
<input name="ctl00$PlaceHolderMain$ctl00$x" type="text" value="3" id="ctl00_PlaceHolderMain_ctl00_x" class="textbox" />
更新:-
以前我在 aspx 页面的加载事件上以编程方式添加用户控件,
UserControl uc = (UserControl)Page.LoadControl("Experience.ascx");
experineceForm.Controls.Add(uc);
但是通过查看页面源,我怀疑并考虑使用以下代码在设计时添加它,
<%@ Register TagPrefix="uc" TagName="Experience" Src="Experience.ascx" %>
<div id="experineceForm" runat="server">
<uc:experience id="idExperienceForm" runat="server"/>
</div>
完成此操作后,我可以使用以下代码找到控件,
((TextBox)Page.Master.FindControl("PlaceHolderMain").FindControl("idExperienceForm").FindControl("txtEmployeeComments")).Text