デフォルトのASP.NETWebアプリケーションテンプレートを試してみましたが、次のコードで例外がスローされます。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
作成したボタンをクリックしたとき。
誰かが技術的な説明を提供できますか?
注1:マークアップは、プレースホルダーが含まれる空白のページです。以下を参照してください。
注2:を置き換えるButton
とLinkButton
、コードは例外をスローせずに機能します。
public partial class test : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
foo();
}
protected override void OnLoad(EventArgs e)
{
foo();
}
protected void foo()
{
placeholder1.Controls.Clear();
placeholder1.Controls.Add(new Button() { Text = "test", ID = "btn" });
}
}
マークアップ:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="WebApplication1.test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PlaceHolder runat="server" ID="placeholder1" />
</div>
</form>
</body>
</html>