1

別のボタン クリック イベントでボタンを表示できません。

.aspx

<asp:Button ID="btnActivate" runat="server" SkinID="skinLoginButton"
    Text="Activate" ToolTip="Activate" CausesValidation="true"
    ValidationGroup="UserAuthentication" onclick="btnActivate_Click" />

<asp:Button ID="btnhomepage" Visible="false" runat="server" 
    Text="Goto Homepage" CssClass="cssLoginButton" onclick="btnhomepage_Click"/>

.cs

#region btnActivate_Click
    protected void btnActivate_Click(object sender, EventArgs e)
    {
       this.btnhomepage.Visible = true;
    }
    #endregion

私は.csファイルで使用this.btnhomepage.Visible = true;します。

コードまたは宣言のどこが間違っていますか?

4

3 に答える 3

3
<asp:Button ID="btnhomepage" Visible="false" runat="server" 
Text="Goto Homepage" CssClass="cssLoginButton" onclick="btnhomepage_Click"/>

マークアップでvisible属性を使用すると、コントロールがvisible = falseになり、永久にfalseのままになります。asp.net エンジンは、 Renderステージで asp.net ページ ライフ サイクルの html コントロールに asp.net コントロールをレンダリングします。コードビハインドイベントでコントロールプロパティを変更したとしても

解決策: コントロールの動作を動的に設定するときは、makup 属性を使用しないでください。

ページのライフサイクル リンク:

http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-ライフサイクル

于 2012-11-20T15:00:07.743 に答える
1

ボタンから表示可能なプロパティを削除し、btnhomepagePage_Load から非表示にします

protected void Page_Load(object sender, EventArgs e)
{
   if(!Page.IsPostBack)
   {
        this.btnhomepage.Visible = false;
   }
}
于 2012-11-20T11:44:54.947 に答える
0

これを試して

btnhomepage.Visible = true;
btnhomepage.Enabled = true;
btnhomepage.Style.Add("display", "block");
于 2012-11-20T11:41:00.027 に答える