2012-02-27 4 views
2

일부 이벤트에 동적으로 onclick 이벤트를 추가해야하지만 button 버튼을 클릭하면 onclick 이벤트가 발생하지 않습니다. 내가 컨트롤을 만들고 요청이있을 때마다 page_init 또는 page_load에 이벤트를 첨부해야한다고 말하는 link과 같은 몇 가지 해결책을 보았습니다. 그러나 추가 할 컨트롤이 많으면 웹 사이트가 매우 느려 집니까?동적으로 추가 된 버튼의 onclick 이벤트

+2

정말 asp-classic을 의미합니까? 이것은 ASP.NET WEbForms와 같습니다. –

답변

4

예, 이어야합니다. 액세스하려는 경우 동적 컨트롤을 다시 만들고 이벤트를 다시 게시하려는 경우 동적 컨트롤을 다시 만들어야합니다.

페이지가 너무 많아서 사이트 속도가 느리면 디자인입니다. 한 페이지 (여러 페이지/탭)에 너무 많은 컨트롤이 없도록 디자인을 다시 생각해보십시오. @Oded가 말했듯이

+0

로드/실행하는 동안 컨트롤의 메모리/HTML 렌더링 비용이 같아야한다고 생각합니다. 권리? – Pankaj

+0

@PankajGarg - 다시 생성하지 않으면 포스트 백에는 비용이 들지 않습니다.) – Oded

+0

예. 감사. 그러나 메모리 소비가 발생합니다. HTML을 실행하고 렌더링 할 때도 같아야합니다. – Pankaj

0

Init Page Event

Button b = new Button(); 
b.Click += new EventHandler(b_Click); 

void b_Click(object sender, EventArgs e) 
{ 

} 

에서 버튼에 아래와 같이 메모리를 할당,이 방법은 디자인 문제를 만들 수 있습니다.

이 단추를 소비해야하는 페이지에서 Div 컨트롤을 사용하면 CSS 스타일을 지정하여 올바른 맞춤과 적절한 배치를 제공 할 수 있습니다.


두 가지 옵션이 있습니다.

  1. 디자인 타임 확실히

에 컨트롤을 추가 런타임에 컨트롤을 추가, 사이트는 두 경우 모두에서 많은 컨트롤의 경우 천천히 이동합니다. 두 옵션 모두 메모리가 BUT 일 때, 끝 부분이 Page Life Cycle 일 때 모든 컨트롤은 disposed이됩니다.

관련 문제