私はその中にラジオボタンを持つユーザーコントロールを作成しました。私はまた、ラジオボタンのタイプのパブリックプロパティを作成し、そのラジオボタンが割り当てられているので、aspxページのコードの背後にアクセスすることができます。なぜユーザーコントロール内のコントロールに.aspxページでアクセスできないのですか?
public partial class WebUserControl : System.Web.UI.UserControl
{
public RadioButton radiobtn { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
initiateControls();
}
private void initiateControls()
{
radiobtn = RadioButton1;
}
}
は、今私が.aspxのページにそのユーザーコントロールをドラッグし、ユーザーコントロール内のラジオボタンへのアクセスが、「null参照例外」をスローしているしようとしています。
.aspxの
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<%@ Register src="UserControls/WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:WebUserControl ID="WebUserControl1" runat="server" />
</div>
</form>
</body>
</html>
は.cs
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
WebUserControl1.radiobtn.Visible = false;
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
}
あなたのUserControlが初期化される前に、**。aspx.cs **から 'Page_Load'が呼び出されると思います。 – Alisson
[Gary.S answer here](https://stackoverflow.com/questions/8160319/all-controls-are-null-within-usercontrol?rq=1)を参照してください。 – Alisson