Blog Content

    티스토리 뷰

    27.C# ASP.NET - PlaceHolder [WebStandardControl]

    반응형

    PlaceHolder(다리표시자)

    - Listeral : 텍스트가 들어올 자리(Text, Html)

    - PlaceHolder : 서버 컨트롤이 들어올 자리(컨트롤)

      - 동적으로 사용, 컨트롤 작성시 사용


    FrmPlaceHolder.aspx

    <div>

       텍스트/HTML 들어올자리 :

       <asp:Literal ID="Literal1" runat="server"></asp:Literal>

      

       <hr />

      

       서버컨트롤이 들어올자리 :

       <asp:PlaceHolder ID="PlaceHolder1" runat="server">

       </asp:PlaceHolder>

       <br />

      

       <asp:Label ID="Label1" runat="server" Text=""></asp:Label>

      

       <hr />

      

       <asp:Button ID="btnGetText" runat="server"

           Text="동적버튼의 텍스트를 읽어오자."

           onclick="btnGetText_Click" />

    </div>


    FrmPlaceHolder.aspx.cs

    protected void Page_Load(object sender, EventArgs e)

    {

       this.Literal1.Text = "안녕<br />방가<br />";

     

       // 동적으로 컨트롤 생성

       Button btn = new Button();

       // 버튼의 주요 속성 지정

       btn.ID = "btnClick";

       btn.Text = "클릭하세요.";

       // 이벤트 처리기 구현

       btn.Click +=

           //new EventHandler(btn_Click);

           delegate(object obj, EventArgs args)

           {

               this.Label1.Text = "무명메서드로 출력";

           };

       // 플레이스홀더에 추가

       this.PlaceHolder1.Controls.Add(btn);

     

       Label lbl = new Label();

       lbl.ID = "lblDisplay";

       lbl.Text = "동적으로 만들어진 레이블";

       this.PlaceHolder1.Controls.Add(lbl);

    }

     

    //void btn_Click(object sender, EventArgs e)

    //{

    //    this.Label1.Text = "버튼이 클릭되었습니다.";

    //}

    protected void btnGetText_Click(object sender, EventArgs e)

    {

       // 플레이스홀더의 btnClick 개체를 찾아서

           //버튼 형태로 변환 Text 속성 요청

       Label1.Text = ((Button)this.PlaceHolder1

           .FindControl("btnClick")).Text;

     

       ((Label)this.PlaceHolder1.FindControl("lblDisplay")).Text =

           DateTime.Now.ToShortTimeString();

    }


    결과화면

    [그림27-1]



    반응형

    Comments