テキストボックスをplacedHolderに動的に追加するという問題に直面していました。
プレースホルダー宣言:
<asp:PlaceHolder ID="phTextBoxes" runat="server" >
</asp:PlaceHolder>
テキストボックスの割り当て
...if (phTextBoxes!= null) phTextBoxes.Controls.Add(txt);
しかし、アプリケーションをビルドするとエラーが発生しました
「phTextBoxes」という名前は現在のコンテキストには存在しません。以下のようにFindControl() を使用して問題を解決しました。
PlaceHolder phtxt = (PlaceHolder)form1.FindControl("phTextBoxes");
次にphtxtにコントロールを追加しました。エラーはなくなりました。しかし、古いプレースホルダーがエラーを出した理由と、FindControl がそれを見つけた方法を知りたいです。