ユーザーコントロール内にテキストボックスがあります。このユーザーコントロールを動的に作成し、プレースホルダーにロードしました。
しかし、テキストボックスに値を代入しようとすると、次のエラーが発生しました:
Object reference not set to an instance of an object
これはユーザー コントロールです。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IVT_FormClient.ascx.cs" Inherits="Evi.Sc.Web.Evi.IVT.Sublayouts.IVT_FormClient" %>
<asp:Panel ID="pnlContainer" runat="server">
<asp:TextBox ID="txtClientNumber" runat="server"></asp:TextBox>
</asp:Panel>
アクセス修飾子は (ユーザー コントロール内):
public string TxtFirstName
{
get { return txtFirstName.Text; }
set { txtFirstName.Text = value; }
}
Web フォームには、コントロール参照があります。
<%@ Reference Control="~/Evi/IVT/Sublayouts/IVT_FormClient.ascx" %>
ユーザー コントロールのコード ビハインドは次のとおりです。
public partial class frm_VerifyIdentity : System.Web.UI.Page
{
IVT_FormClient ivtFormClient = new IVT_FormClient();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
IVT_FormClient ivtFormClient = (IVT_FormClient)LoadControl("~/Evi/IVT/Sublayouts/IVT_FormClient.ascx");
Client UserClient = new Client();
UserClient = Load_ClientVerification(Server.HtmlEncode(Request.QueryString["ID"]).Trim());
if (UserClient != null)
{
ivtFormClient.TxtFirstName = UserClient.FirstName;
plhFormClient.Controls.Add(ivtFormClient);
}
}
}
}
エラーが発生するのは、次のコード行です。
ivtFormClient.TxtFirstName = UserClient.FirstName;