2つのユーザーコントロールが登録されたASP.NETページがあります。最初のボタンにはボタンが1つしかありません。 2番目は単純なテキストで、デフォルトでは隠されています。私がしたいのは、最初のボタンがクリックされたとき(ボタンクリックイベントのとき)に2番目のものを表示させることです。そのASP.NETページの別のユーザーコントロールのイベント内でASP.NETページのユーザーコントロールを検索する方法EDIT:異なるコンテンツプレースホルダ?
ASP.NETページ:
<%@ Page Title="" Language="C#" CodeFile="test.aspx.cs" Inherits="test" %>
<%@ Register Src="~/UC_button.ascx" TagName="button" TagPrefix="UC" %>
<%@ Register Src="~/UC_text.ascx" TagName="text" TagPrefix="UC" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MyTestContent" Runat="Server">
<UC:button ID="showbutton1" runat="server" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MyTestContent2" Runat="Server">
<UC:text runat="server" Visible="false" ID="text1" />
</asp:Content>
UC_Button.ascx.cs:
protected void button1_Click(object sender, EventArgs e)
{
Button btnSender = (Button)sender;
Page parentPage = btnSender.Page;
UserControl UC_text = (UserControl)parentPage.FindControl("text1");
UC_text.Visible = true;
}
私が間違って何をしているのですか?私はよく知られているObject reference not set to an instance of an object.
コードの最後の行にエラーが発生します。
編集:私が最初にこれを投稿する際に言及するのを忘れてしまった
一つ。ユーザーコントロールは異なる<asp:Content></asp:Content>
コントロールにあります(上の例を編集しました)。同じプレースホルダコードに入れてもうまく動作します。別々のコンテンツプレースホルダーに置くと、findcontrolで検索できません。それはなぜですか、どうすれば見つけることができますか?
より良い解決策:MVC :) – drzaus