aspx ページと SharePoint マスター ページを使用するそのページに含まれるユーザー コントロール フォームにフィールド 'x' があります。コードで 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