사용자 지정 컨트롤 및 사용자 정의 컨트롤 개요

ASP.NET Support Voice 칼럼

사용자 지정 컨트롤 및 사용자 정의 컨트롤 개요

이 칼럼의 필요에 맞게 다루었으면 보려고 하는 문제와 관심 있는 항목에 대 한 아이디어를 향후 기술 자료 문서 및 Support Voice 칼럼을 초대 하려고 합니다. 의견이 나 요청에 대해이 양식을 사용 하 여 피드백을 제출할 수 있습니다. 이 칼럼의 맨 아래에 폼에 대 한 링크가 있습니다.

소개

안녕! Parag, 이것이 벌써 1 년 이상 지금 Microsoft ASP.NET 지원 그룹과 작업 지원 엔지니어. Microsoft에 합류 하기 전에 웹 기반 프로젝트 및 Microsoft 기술을 사용 하 여 데스크톱 응용 프로그램에서 작동 합니다. 을 고객에 게 품질 지원을 제공 하는 동안 사용자 지정 컨트롤 주위의 혼란 했습니다만 사용자 지정 컨트롤 주위의 일부 개념을 설명 하는 데 시간이 걸릴 싶습니다 경우 본. 불량으로 나타나는 모양 대로 믿지 않겠지요, ASP.NET을 위치에서 수 있습니다의 중단을 구입한 후.

개요

이번 달 칼럼에서는 다음 항목 설명 하겠습니다.
  • 사용자 정의 컨트롤은 무엇입니까?
  • 사용자 지정 컨트롤은 무엇입니까?
  • 사용자 정의 컨트롤과 사용자 지정 컨트롤의 기본적인 차이점은 무엇입니까?
또한 상태 관리 및 사용자 지정 컨트롤의 렌더링을 같은 사용자 지정 컨트롤이 관련 된 고급 항목 중 몇 가지를 소개 하겠습니다.

사용자 정의 컨트롤은 무엇입니까?

사용자 정의 컨트롤은 사용자 지정, 재사용 가능한 컨트롤 및 HTML 및 웹 서버 컨트롤에서 사용 하는 동일한 기술을 사용. 쉽게 분할 하 고 ASP.NET 웹 응용 프로그램 간에 공용 사용자 인터페이스를 다시 사용 하는 방법을 제공 합니다. Web Forms 페이지를 작동 하는 동일한 Web Forms 프로그래밍 모델을 사용 합니다. Web Forms 프로그래밍 모델에 대 한 자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.

사용자 정의 컨트롤을 만드는 방법

구문을 사용 하 여 사용자 정의 컨트롤을 만드는 구문을 사용 하 여 Web Forms 페이지 (.aspx)을 만드는 것과 비슷합니다. 유일한 차이점은 사용자 정의 컨트롤에 < html > 포함 되지 않습니다 > < 본문 형식과 < > 요소 사용자 컨트롤을 호스팅하는 Web Forms 페이지 때문입니다. 사용자 정의 컨트롤을 만들려면 다음과이 같이 하십시오.
  1. 텍스트 또는 HTML 편집기를 열고 속성, 메서드 및 이벤트를 노출 하는 서버 쪽 코드 블록을 만듭니다.
    <script language="C#" runat="server">   public void button1_Click(object sender, EventArgs e)
    {
    label1.Text = "Hello World!!!";
    }
    </script>

  2. 사용자 정의 컨트롤에 대 한 사용자 인터페이스를 만듭니다.
    <asp:Label id="label1" runat="server"/> <br><br>
    <asp:button id="button1" text="Hit" OnClick="button1_Click" runat="server" />

Web Forms 페이지에서 사용자 정의 컨트롤을 사용 하는 방법

  1. Microsoft Visual Studio.NET 2002, Microsoft Visual Studio.NET 2003, Microsoft Visual Studio 2005 또는 다른 텍스트 편집기에서 새 Web Forms 페이지 (.aspx)을 만듭니다.
  2. @ Register 지시문을 선언 합니다. 예를 들어, 다음 코드를 사용 합니다.
    <%@ Register TagPrefix="UC" TagName="TestControl" Src="test.ascx" %>
    참고: 사용자 정의 컨트롤을 Web Forms 페이지 같은 장소에 있는 가정 합니다.
  3. Web Forms 페이지에서 사용자 정의 컨트롤을 사용 하려면 @ Register 지시문 뒤에 다음 코드를 사용 합니다.
    <html>    <body>
    <form runat="server">
    <UC:TestControl id="Test1" runat="server"/>
    </form>
    </body>
    </html>

코드 숨김 파일에 Web Forms 페이지에서에서 사용자 정의 컨트롤의 인스턴스를 프로그래밍 방식으로 만드는 방법

앞의 예제에서는 @ Register 지시문을 사용 하 여 Web Forms 페이지에 선언적으로 사용자 정의 컨트롤 인스턴스화. 그러나 사용자 정의 컨트롤을 동적으로 인스턴스화하 하 고 페이지에 추가할 수 있습니다. 수행 하는 단계는 다음과 같습니다.
  1. Visual Studio 새 Web Forms 페이지를 만듭니다.
  2. 코드 숨김이 Web Forms 페이지에 대해 생성 된 파일을 찾습니다.
  3. 페이지 클래스의 Page_Load 이벤트에서 다음 코드를 작성 합니다.
    // Load the control by calling LoadControl on the page class.Control c1 = LoadControl("test.ascx");

    // Add the loaded control in the page controls collection.
    Page.Controls.Add(c1);

    참고: 페이지 수명 주기의 특정 이벤트에 사용자 정의 컨트롤을 동적으로 추가할 수 있습니다.

    자세한 내용은 다음 웹 사이트를 방문.
    프로그래밍 방식으로 Web Forms 페이지에 컨트롤 추가
    http://msdn2.microsoft.com/en-us/library/kyt0fzt1(vs.71).aspx

    컨트롤 실행 주기
    http://msdn2.microsoft.com/en-us/library/aa719775(vs.71).aspx

    동적 웹 컨트롤을 포스트백 Scott 효 자 하 여 뷰 상태
    http://aspnet.4guysfromrolla.com/articles/092904-1.aspx

사용자 정의 컨트롤 처리 방법

사용자 정의 컨트롤을 사용 하 여 페이지 요청 되 면 결과 다음과 같습니다.
  • 페이지 파서는 @ Register 지시문의 Src 특성에 지정 된.ascx 파일을 구문 분석 하 고 System.Web.UI.UserControl 클래스에서 파생 되는 클래스를 생성 합니다.
  • 파서에서 다음 클래스를 어셈블리로 동적으로 컴파일합니다.
  • Visual Studio 사용 하는 경우 다음 디자인 타임에 Visual Studio 코드 숨김 파일로 사용자 정의 컨트롤을 만들고 자체는 디자이너 파일은 미리 컴파일된.
  • 동적 코드 생성 및 컴파일 과정을 통해 생성 된 사용자 정의 컨트롤의 클래스 코드 숨김 파일에 대 한 코드를 포함 하는 마지막으로 (. ascx.cs).ascx 파일 내에서 작성 한 코드 뿐만 아니라.

사용자 지정 컨트롤은 무엇입니까?

사용자 지정 컨트롤은 일반적인 Web Form 또는 사용자 정의 컨트롤은 서버에서 실행 개체 모델을 노출 하 고, HTML 또는 XML 같은 태그 텍스트를 렌더링 하는 컴파일된 코드 구성 요소입니다.

사용자 지정 컨트롤에 대 한 기본 클래스를 선택 하는 방법

사용자 지정 컨트롤을 작성 하려면 직접 또는 간접적으로 파생 시켜야 새 클래스 또는 System.Web.UI.WebControls.WebControl 클래스는 System.Web.UI.Control 클래스에서.
  • 비시각적 요소 렌더링을 제어 하려는 경우에 System.Web.UI.Control 에서 파생 되어야 합니다. 예를 들어, < 메타 > < 헤드 >는 비시각적 렌더링 예입니다.
  • 클라이언트 컴퓨터에서 시각적 인터페이스를 생성 하는 HTML 렌더링을 제어 하려면 System.Web.UI.WebControls.WebControl 에서 파생 시켜야 합니다.
단추 또는 레이블, 같은 기존 컨트롤의 기능을 변경 하려는 경우 직접 이러한 기존 클래스를 사용 하 여 새 클래스 파생 및 기본 동작을 변경할 수 있습니다.

간단히 요약 하면, 컨트롤 클래스를 넣을 수 있습니다 컨트롤 트리에서 페이지 클래스에 대 한 기본 기능을 제공 합니다. WebControl 클래스 클라이언트 컴퓨터에서 시각적 콘텐츠를 표시 하기 위한 기본 컨트롤 클래스에 기능을 추가 합니다. 예를 들어, WebControl 클래스는 모양과 스타일 같은 글꼴, 색 및 높이 속성을 통해 제어할 수에 사용할 수 있습니다.

만들고 Visual Studio 사용 하 여 System.Web.UI.Control에서 확장 하는 간단한 사용자 지정 컨트롤을 사용 하는 방법

  1. Visual Studio 시작 합니다.
  2. 클래스 라이브러리 프로젝트를 만들고 이름을, 예를 들어, CustomServerControlsLib.
  3. 예를 들어, SimpleServerControl.cs 프로젝트에 소스 파일을 추가 합니다.
  4. System.Web 네임 스페이스에 대 한 참조를 "참조" 절에 포함 됩니다.
  5. 다음 네임 스페이스는 SimpleServerControl.cs 파일에 포함할지 여부를 확인 합니다.
    SystemSystem.Collections
    System.ComponentModel
    System.Data
    System.Web
    System.Web.SessionState
    System.Web.UI
    System.Web.UI.WebControls

  6. Control 기본 클래스를 사용 하 여 SimpleServerControls 클래스를 상속 합니다.
    public class SimpleServerControl : Control
  7. 출력을 출력 스트림에 쓸 Render 메서드를 재정의 합니다.
    protected override void Render(HtmlTextWriter writer) {
    writer.Write("Hello World from custom control");
    }

    참고: HtmlTextWriter 클래스에 HTML 텍스트 스트림에 쓰는 기능. HtmlTextWriter 클래스의 Write 메서드를 HTTP 응답 스트림에 지정된 된 텍스트를 출력 하 고 Response.Write 방법 같습니다.
  8. 클래스 라이브러리 프로젝트를 컴파일하십시오. DLL 출력을 생성 합니다.
  9. 기존 열거나 새 ASP.NET 웹 응용 프로그램 프로젝트를 만듭니다.
  10. 사용자 지정 컨트롤을 사용할 수 있는 Web Forms 페이지를 추가 합니다.
  11. ASP.NET 프로젝트에서 참조 섹션에 클래스 라이브러리에 대 한 참조를 추가 합니다.
  12. Web Forms 페이지에서 사용자 지정 컨트롤을 등록 합니다.
    <%@ Register TagPrefix="CC " Namespace=" CustomServerControlsLib " Assembly="CustomServerControlsLib " %>
  13. 인스턴스화하거나 Web Forms 페이지에서 사용자 지정 컨트롤을 사용 하려면 < form > 태그 안에 다음 코드 줄을 추가 합니다.
    <form id="Form1" method="post" runat="server">    <CC:SimpleServerControl id="ctlSimpleControl" runat="server">
    </CC:SimpleServerControl >
    </form>

    참고: 이 코드에서 SimpleServerControl 는 클래스 라이브러리 내부 컨트롤 클래스 이름입니다.
  14. Web Forms 페이지를 실행 하 고 사용자 정의 컨트롤 출력을 볼 수 있습니다.
Visual Studio 사용 하지 않는 경우 다음 단계를 수행 해야 합니다.
  1. 텍스트 편집기를 엽니다.
  2. 를 SimpleServerControl.cs 라는 파일을 만들고 1-14 단계에 지정 된 코드를 작성 합니다.
  3. PATH 변수에 다음 경로 추가 합니다.
    c:\windows (winnt)\Microsoft.Net\Framework\v1.1.4322
  4. 명령 프롬프트를 시작 하 고 SimpleServerControl.cs가 있는 위치로 이동 합니다.
  5. 다음 명령을 실행 합니다.
    csc /t: library /out: CustomServerControlsLib. SimpleServerControl.dll /r:System.dll /r:System.Web.dll SimpleServerControl.cs
    C# 컴파일러 (csc.exe)에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.
  6. Web Forms 페이지에서 사용자 지정 컨트롤을 실행 하려면 다음을 수행 합니다.
    1. Wwwroot 폴더 아래에 디렉터리를 만듭니다.
    2. Microsoft 인터넷 정보 서비스 (IIS) 관리자를 시작 하 고 가상 루트 디렉터리 새 디렉터리를 표시 합니다.
    3. 새 디렉터리 아래에 Bin 폴더를 만듭니다.
    4. 사용자 지정 컨트롤 DLL을 Bin 폴더에 복사 합니다.
    5. 새 디렉터리 내의 이전 단계에서 만든 예제 Web Forms 페이지를 배치 합니다.
    6. IIS 관리자에서 예제 페이지를 실행 합니다.
간단한 사용자 지정 컨트롤을 빌드한 했으므로 속성을 노출 하 고 해당 사용자 지정 컨트롤의 디자인 타임 특성을 적용 하는 방법을 살펴보겠습니다.

사용자 지정 컨트롤의 속성을 노출 하는 방법

앞의 예제에서 빌드하고 Web Forms 페이지에서 사용자 지정 컨트롤을 사용 하는 동안 구성할 수 있는 하나 이상의 속성을 소개 합니다 I.

다음 예제는 특정 여러 번 컨트롤의 속성에 지정 된 대로 컨트롤에서 메시지를 표시 하는 속성을 정의 하는 방법을 보여 줍니다.
  1. 텍스트 편집기에서 SimpleServerControl.cs를 엽니다.
  2. SimpleServerControl 클래스에 속성을 추가 합니다.
    public class SimpleServerControl : Control{
    private int noOfTimes;
    public int NoOfTimes
    {
    get { return this.noOfTimes; }
    set { this.noOfTimes = value; }
    }
    protected override void Render (HtmlTextWriter writer)
    {
    for (int i=0; i< NoOfTimes; i++)
    {
    write.Write("Hello World.."+"<BR>");
    }
    }
    }

  3. 사용자 지정 컨트롤을 컴파일하십시오.
  4. Web Forms 페이지에서 사용자 지정 컨트롤을 사용 하려면 컨트롤 선언에 새 속성을 추가 합니다.
    <CC:SimpleServerControl id="ctlSimpleControl" NoOfTimes="5" runat="server"></CC:SimpleServerControl>
  5. 페이지를 실행 하면 메시지 "Hello world" 횟수 만큼 사용자 지정 컨트롤에서로 컨트롤의 속성에 지정 된 표시 됩니다.

사용자 지정 컨트롤의 디자인 타임 특성을 적용 하는 방법

디자인 타임 특성은 필요한 이유
앞의 예제에서에서 만든 사용자 지정 컨트롤이 예상 대로 작동 합니다. 그러나 Visual Studio 해당 컨트롤을 사용 하려면 NoOfTimes 속성을 디자인 타임에 사용자 지정 컨트롤을 선택할 때마다 자동으로 강조 속성 창에 좋습니다.

이렇게 하려면 특성 이라고 하는 Visual Studio 기능을 사용 하 여 수행할 수 있는 Visual Studio 메타 데이터 정보를 제공 합니다. 특성은 클래스, 메서드, 속성 또는 필드를 정의할 수 있습니다. Visual Studio 사용자 지정 컨트롤 클래스를 로드할 때 클래스, 메서드, 속성 또는 필드 수준에 정의 된 속성을 검사 하 고 디자인 타임에 사용자 지정 컨트롤의 동작을 적절 하 게 변경.

특성에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문.이제 자주 사용 하는 샘플을 빌드 특성 사용.
  1. 텍스트 편집기에서 SimpleServerControl.cs를 엽니다.
  2. 일부 기본 특성 클래스 수준의 DefaultProperty, ToolboxDataTagPrefixAttrbute를 소개 합니다. 이러한 세 가지 특성에 샘플을 작성할 것입니다.
            [// Specify the default property for the control.
    DefaultProperty("DefaultProperty"),

    // Specify the tag that is written to the aspx page when the
    // control is dragged from the Toolbox to the Design view.
    // However this tag is optional since the designer automatically
    // generates the default tag if it is not specified.
    ToolboxData("<{0}:ControlWithAttributes runat=\"server\">" +
    "</{0}:ControlWithAttributes>")
    ]
    public class ControlWithAttributes : Control
    {
    private string _defaultProperty;
    public string DefaultProperty
    {
    get { return "This is a default property value"; }
    set { this._defaultProperty = value; }
    }

    protected override void Render(HtmlTextWriter writer)
    {
    writer.Write("Default Property --> <B>" +
    DefaultProperty + "</B>");
    }
    }

  3. TagPrefixAttrbute라는 자세한 태그가 있습니다. 컨트롤 도구 상자에서 디자이너로 끌 때 태그 접두사를 제공 하는 어셈블리 수준 특성은 그렇지 않으면, 디자이너는 기본적으로 접두사 "cc1" 같은 생성합니다. TagPrefixAttrbute 컨트롤 클래스에 직접 적용 되지 않습니다. TagPrefixAttrbute를 적용 하려면 AssemblyInfo.cs를 열고 코드의 다음 줄을 포함 하 고 프로젝트를 다시 빌드하십시오.
    [assembly:TagPrefix("ServerControlsLib ", "MyControl")]
    참고: 명령줄을 사용 하는 소스를 빌드 하려는 AssemblyInfo.cs 파일을 만드는 모든 소스 파일을 포함 하는 디렉터리에 파일을 배치를 해야 컨트롤을 작성 하려면 다음 명령을 실행:
    > csc /t: library /out: ServerControlsLib.dll /r:System.dll /r: System.Web.dll *.cs

사용자 정의 컨트롤과 사용자 지정 컨트롤의 기본적인 차이점은 무엇입니까?

만드는 방법과 사용자 지정 컨트롤과 사용자 정의 컨트롤은 무엇입니까의 기본 개념을 추가한 다음에 개요 둘 사이의 차이 살펴보겠습니다.
요소사용자 정의 컨트롤사용자 지정 컨트롤
배포단일 응용 프로그램 시나리오를 위해 설계 되었습니다.

응용 프로그램의 소스 코드를 함께 (.ascx) 소스 형태로 배포

중복 및 유지 관리 문제를 소개 같은 컨트롤 하나 이상의 응용 프로그램에서 사용할 경우,
둘 이상의 응용 프로그램에서 사용할 수 있도록 설계 되었습니다.

응용 프로그램의 Bin 디렉터리 또는 전역 어셈블리 캐시에 배포합니다.

쉽게 및 중복 및 유지 관리와 관련 된 문제 없이 분산
만들기만들기는 비슷한 방식으로 Web Forms 페이지에 생성 됩니다. (RAD) 신속한 응용 프로그램 개발에 적합쓰는 디자이너 지원이 없습니다 때문에 많은 코드가 포함 됩니다.
콘텐츠훨씬 좋은 선택 할 때 고정 된 레이아웃 내에서 정적 콘텐츠 예를 들어, 머리글 및 바닥글을 확인 하는 경우응용 프로그램에 동적 콘텐츠가 표시 됩니다; 필요에 더 적합 다시 사용할 수 있습니다 응용 프로그램을 통해 예를 들어, 데이터 바인딩된 동적 행을 사용 하 여 table 컨트롤에 대 한
디자인디자인 타임에 작성 되어 주로 정적 데이터가 포함 되어 있기 때문에 많은 응용 프로그램 디자인 쓰기를 필요로 하지 않습니다.처음부터 작성 해야 정상적으로 처리 사용자 정의 컨트롤에는 이벤트 실행 순서와 컨트롤의 수명 주기 이해

고급 항목

그런 다음, 사용자 지정 컨트롤을 개발 하는 동안 사용할 수 있는 고급 기능 중 몇 가지에 살펴보겠습니다.

상태 관리

웹 응용 프로그램은 상태 비저장 HTTP를 기반으로 합니다. 페이지 및 해당 자식 컨트롤에는 모든 요청에 대해 생성 되 고 요청이 끝난 후 삭제 됩니다. 기존의 ASP 프로그래밍의 상태를 유지 하기 위해 세션 및 응용 프로그램 개체를 사용 합니다. 하지만를 위해 다양 한 코딩을 할 필요. 이 방지 하려면 ASP.NET 여러 요청 간에 상태를 유지 하는 것에 대 한 뷰 상태를 라는 메커니즘을 제공 합니다. 상태 관리와 뷰 상태에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.
사용자 지정 컨트롤에서의 뷰 상태를 사용 하는 예
ViewStateExample.cs
using System;using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;

namespace ServerControlLib
{
/// <summary>
/// When a page framework reloads this control after postback, it
/// will restore the values which are in view state.
/// This control can easily perform state management without
/// implementing our own logic for maintaining the state.
/// </summary>
public class ViewStateExample : WebControl
{
// Text to be displayed in Text box control.
private string _text;

/*
* This property needs to be populated before every
* postback in order to
* retain its value.
*/
public string Text
{
get { return (_text == null) ? "_text property is empty" : _text; }
set { _text = value; }
}

/*
* This property needs to be filled once and should be
* available on the successive postbacks.
*/
public string TextInViewState
{
get
{
object o = ViewState["TextInViewState"];
return (o == null) ? "View state is empty" : (string)o;
}
set { ViewState["TextInViewState"] = value; }
}

/*
* Over-ridden method on WebControl base class which
* displays both of the property values
* i.e. one stored in view state and other which is not
* saved in view state.
*/
protected override void RenderContents(HtmlTextWriter writer)
{
writer.Write("Text Without View State = ");
writer.Write(Text);
writer.Write("<hr><br>");
writer.Write("Text In View State = ");
writer.Write(TextInViewState);
}
}
}

이전 컨트롤을 Web Forms 페이지에서 사용 하는 예
ViewStateExampleDemo.aspx
<%@ Page Language="C#" %><%@ Register TagPrefix="CC" Namespace="ServerControlLib" Assembly = "ServerControlLib" %>

<html>
<head>
<script runat="server">
void button1_Click(object sender, EventArgs e)
{
Control1.Text = textbox1.Text;
Control1.TextInViewState = textbox2.Text;
}
</script>
</head>
<body>
<form runat="server" ID="Form1">
<br>
Property Value Without View State: <asp:TextBox id="textbox1"
runat="server" />
<br>
Property Value with View State: <asp:TextBox id="textbox2"
runat="server" />

<asp:Button text="Cause Postback" onClick="button1_Click"
id="button1" Runat="server" />

Output from the ViewStateExample Control :
<CC:ViewStateExample id="Control1" runat="server"/>
</form>
</body>
</html>

렌더링

이 섹션에서 간단히 컨트롤 클래스 또는 WebControl 클래스 중 하나에서 사용자 지정 컨트롤을 파생 시킬 때 재정의 해야 하는 방법을 설명 합니다.
System.Web.UI.Control 클래스의 메서드를 렌더링합니다.
System.Web.UI.Control 클래스의 렌더링 방법에 대 한 내용은 다음 MSDN 웹 사이트를 방문.
페이지에 컨트롤이 렌더링 되는 방법
모든 페이지에 해당 페이지의 모든 자식 컨트롤의 컬렉션을 나타내는 컨트롤 트리가 있습니다. 렌더링 되는 컨트롤 트리를 HtmlTextWriter 클래스의 개체가 만들어집니다 클라이언트 컴퓨터에서 렌더링 되는 HTML을 포함 합니다. RenderControl 메서드는 해당 개체가 전달 됩니다. 차례로 RenderControl 메서드는 Render 메서드를 호출합니다. 그런 다음 Render 메서드에서 컬렉션의 끝에 도달할 때까지 재귀 루프를 만들어 각 자식 컨트롤에 대해 RenderChildren 메서드를 호출 합니다. 다음 예제 코드에서는이 프로세스 가장 잘 설명 하 고.
public void RenderControl(HtmlTextWriter writer) {
// Render method on that control will only be called if its visible property is true.
if (Visible)
{
Render(writer);
}
}

protected virtual void Render(HtmlTextWriter writer)
{
RenderChildren(writer);
}
protected virtual void RenderChildren(HtmlTextWriter writer)
{
foreach (Control c in Controls)
{
c.RenderControl(writer);
}
}

System.Web.UI.WebControl 클래스의 메서드를 렌더링합니다.
System.Web.UI.WebControl 클래스의 렌더링 방법에 대 한 내용은 다음 MSDN 웹 사이트를 방문.
WebControl 클래스의 렌더링 수행 방법
다음 코드 예제에서는 사용자 지정 컨트롤에 대해 Render 메서드를 보여 줍니다.
protected override void Render(HtmlTextWriter writer){
RenderBeginTag(writer);
RenderContents(writer);
RenderEndTag(writer);
}

WebControl 클래스의 Render 메서드를 재정의할 필요가 없습니다. WebControl 클래스 내에서 콘텐츠를 렌더링 하려면 RenderContents 메서드를 재정의 해야 합니다. 그러나 계속 Render 메서드를 재정의 하려면 RenderEndTag 메서드는 이전 코드 예제에 표시 된 특정 순서로 뿐만 아니라 RenderBeginTag 메서드 재정의 해야 합니다.

결론

모든 사용자 정의 컨트롤과 사용자 지정 컨트롤 ASP.NET 1.0 및 ASP.NET 1.1에서 당분간. 이 열 및 개발을 위해 수행할 수 있는 다양 한 방법의 기본적인 차이 이해 하는 데을 사용 하는 것이 좋겠습니다.

주셔서 감사. 상태 관리, 컨트롤의 스타일, 합성 컨트롤 및 사용자 지정 컨트롤에 대 한 디자인 타임 지원 등의 사용자 지정 컨트롤에 대 한 고급 항목에 대 한 자세한 가까운 장래에 쓸 예정입니다.

컨트롤에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.
ASP.NET 서버 컨트롤 개발 기본 사항
http://msdn2.microsoft.com/en-us/library/aa310918(vs.71).aspx

사용자 정의 컨트롤의 광범위 한 시험
http://msdn2.microsoft.com/en-us/library/ms972975.aspx

템플릿 기반 사용자 지정 ASP.NET 서버 컨트롤 빌드
http://msdn2.microsoft.com/en-us/library/Aa478964.aspx

ASP.NET 서버 컨트롤의 이벤트
http://msdn2.microsoft.com/en-us/library/aa720049(vs.71).aspx

사용자 정의 컨트롤 및 복합 컨트롤
http://msdn2.microsoft.com/en-us/library/aa719735(vs.71).aspx

ASP.NET 서버 컨트롤 개발
http://msdn2.microsoft.com/en-us/library/aa719973(vs.71).aspx

사용자 지정 컨트롤 개발: 개념을 키
http://msdn2.microsoft.com/en-us/library/aa720226(vs.71).aspx

ASP.NET 컨트롤에 디자인 타임 지원 추가

http://msdn2.microsoft.com/en-us/library/Aa478960.aspx
언제 라도 요청에 대해이 양식을 사용 하 여 기술 이나 열 처리 나중에 원하는 주제에 의견을 보내주시기 바랍니다.
속성

문서 ID: 893667 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백