>백엔드 개발 >C++ >동적으로 생성된 컨트롤 내에서 ASP.NET 컨트롤을 동적으로 생성하는 방법은 무엇입니까?

동적으로 생성된 컨트롤 내에서 ASP.NET 컨트롤을 동적으로 생성하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 15:55:41497검색

How to Create ASP.NET Controls Dynamically Within Dynamically Created Controls?

ASP.NET에서 동적 컨트롤 생성

컨트롤을 동적으로 생성하면 웹 페이지 디자인이 유연해지며 런타임 중에 요소를 추가하거나 제거할 수 있습니다. 이 문서에서는 동적으로 생성된 ASP.NET 컨트롤 내에서 ASP.NET 컨트롤을 동적으로 생성하는 방법에 대해 설명합니다.

제공된 예제는 동적으로 생성된 버튼이 추가 HTML 및 컨트롤을 생성하는 다중 레벨 제어 구조 생성을 중심으로 진행됩니다. 자리 표시자.

구현

  1. 자리 표시자 컨트롤(예: phHazard)을 만들어 동적으로 생성된 컨트롤을 위한 컨테이너입니다.
  2. 버튼 클릭 이벤트에 대한 이벤트 핸들러를 생성합니다.
  3. 이벤트 핸들러 내에서 보기 상태에서 현재 컨트롤 수를 검색하여 증가시킵니다.
  4. 원하는 HTML을 생성하고 프로그래밍 방식으로 컨트롤을 만듭니다.
  5. 다음을 사용하여 적절한 자리 표시자에 컨트롤을 할당합니다. FindControl.
  6. 컨트롤 수를 늘리고 뷰 상태를 업데이트하여 포스트백 전체에 걸쳐 변경 사항을 유지합니다.

다음은 권장 접근 방식을 보여주는 코드 조각입니다.

private void createHazard(int hazardCount, int placeholderID)
{
    // HTML and control creation logic for the hazard...

    // Assign controls to the placeholder
    FindControl("phHazard" + placeholderID).Controls.Add(literalControl);
    FindControl("phHazard" + placeholderID).Controls.Add(dropDownList);

    // ...
}

명령 인수

버튼을 클릭할 때 추가 정보를 보내려면 다음을 사용할 수 있습니다. CommandArgument:

// Add argument to button
button.CommandArgument = "Create Hazard";

// Get argument in event handler
string buttonArgument = e.CommandArgument.ToString();

문제 해결

동적으로 생성된 컨트롤은 수동으로 다시 생성하지 않는 한 포스트백 시 손실된다는 점을 기억하세요. 데이터 손실을 방지하려면 Page_Load 이벤트에서 이러한 컨트롤을 다시 만드는 것이 좋습니다.

위 내용은 동적으로 생성된 컨트롤 내에서 ASP.NET 컨트롤을 동적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.