2017-10-25 8 views
1

.Master, .aspx.ascx 페이지를 만들었습니다. .master 페이지에서 버튼을 클릭하면 .ascx 페이지를 호출하려고합니다. 버튼을 클릭하지 않으면 .ascx가 나타나서는 안됩니다.asp.net 웹 양식 응용 프로그램에서 버튼을 클릭하면 마스터 페이지에서 .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> 

내 사용자 컨트롤은 다음과 같습니다

<%@ 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

false로 제어의 가시성을 설정하고

<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

간단한 방법은 컨트롤이 보이지 않게하는 것입니다

<%@ 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 페이지 마스터 페이지.

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

버튼을 클릭 할 때 보이게하십시오.