ASP.NET 사용자 컨트롤 조합을 동적으로 생성하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/90878

  •  01-07-2019
  •  | 
  •  

문제

여러 가지 사용자 컨트롤이 있습니다. A, B, C 그리고 D.임의의 입력을 기반으로 이들의 조합을 생성해야 합니다.예를 들어입력이 2a3d1a2c A 두 개, 그 뒤에 D 세 개, 다시 A 등을 보여줘야 합니다.

또한 제대로 작동하려면 클라이언트 ID를 안정화해야 합니다.이러한 각 컨트롤은 자체적인 사용을 사용하기 때문에 ClientID 스스로 입력을 수집하는 속성입니다.예를 들어사용자 컨트롤 A는 내부적으로 다음과 같은 입력을 생성합니다. this.ClientID + "$input1", 다음과 같은 요청에서 입력을 수집합니다. Request[this.ClientID + "$input1"].하나 이상의 A가 있을 수 있으므로 각 A는 동일해야 합니다. (unique) ClientID 요청에서 올바른 입력을 얻기 위해 포스트백 후.

도움이 되었습니까?

해결책

컨트롤을 동적으로 추가하려면 패널을 자리 표시자로 사용할 수 있습니다.

<asp:Panel ID="ControlPlaceholder" runat="server" />

그런 다음 서버 측에서 다음과 같이 개체를 추가할 수 있습니다.

int controlCount = 0;

...

TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);

Page_Load 이벤트 중에 컨트롤을 추가하고 컨트롤 ID를 생성하는 일관된 방법(예: 위의 단순 개수)을 사용하면 모든 viewstate 또는 이벤트 바인딩이 포스트백 시 올바른 개체에 다시 바인딩됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top