2017-10-25 4 views
1

.Master, .aspx.ascxのページを作成しました。私は.ascxページのボタンをクリックすると.ascxページを呼び出したいと思う。ボタンがクリックされていなければ、.ascxは表示されません。asp.net Webフォームアプリケーションのボタンをクリックするとマスターページから.ascxファイルを呼び出したい

現在、<uc1:Account runat="server" ID="Account" />を使用しているため、ページのOnload、.ascxページがコールしています。しかし、私は、ページの負荷ではなく、ボタンをクリックした後にしたい。

ご協力いただきまして誠にありがとうございます。前もって感謝します。

私のマスターページには、次のようになります。

<%@ Master Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Staff.master.cs" Inherits="Admin_Staff" %> 

<%@ Register Src="~/Controls/Account.ascx" TagPrefix="uc1" TagName="Account" %> 

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <h4>Account</h4> 
    <span class="input-group-btn"> 
     <input type="text" class=" search-query form-control" placeholder="Search" /> 

     <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button> 
    </span> 

    <div class="col-lg-9"> 
     <uc1:Account runat="server" ID="Account" /> 
    </div> 

</asp:Content> 

私のユーザーコントロールは、次のようになります。

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Acc.ascx.cs" Inherits="Admin_Controls_Account" %> 
<asp:panel id="pnlAcc" runat="server"> 
       <section id="AccForm"> 
           <asp:PlaceHolder runat="server" ID="PlaceHolder1" Visible="false"> 

        </asp:PlaceHolder> 

        <div class="form-group"> 
         <asp:Label runat="server" CssClass="col-md-2 control-label">Country: </asp:Label> 
         <div class="col-md-10"> 
          <asp:Label runat="server" CssClass="col-md control-label" >New Zealand</asp:Label> 
         </div> 
        </div> 

      </section> 

</asp:panel> 

マイ.aspxページ

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/Staff.master" AutoEventWireup="true" CodeFile="Staff.aspx.cs" Inherits="Admin_Staff" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="StaffContent" Runat="Server"> 

</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent1" Runat="Server"> 
</asp:Content> 

答えて

1

あなたが偽のコントロールの可視性を設定し、

<uc1:Account runat="server" ID="Account" Visible="false" /> 

をクリックしてボタンの上にそれを変更し、ボタンの上に

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Account.Visible = true; 
} 

をクリックするか、あなたは

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Admin_Controls_Account account = (Admin_Controls_Account)LoadControl("~/Controls/Account.ascx"); 
    PlaceHolder1.Controls.Add(account); 
} 
動的にコントロールを追加することができますすることができます

最後のオプションの場合は、その都度、コントロールをリロードする必要があります。 PostBackを使用すると、Visibilityを自分で保存し、ページが読み込まれるたびにコントロールを再作成する必要があります。

+0

ありがとうございました。それは私のために働いた。 – Raj

1

簡単な方法は、コントロールが見えないようにすることですマスターページで

<uc1:Account runat="server" ID="Account" Visible="False" /> 

ボタンをクリックすると表示されます。

関連する問題