저는 이것이 비현실적 인 것처럼 보입니다.하지만 저는이 WebForms 페이지를 어떻게 재구성하여 긴급하고 막판의 비즈니스 요구 사항을 충족시킬 수 있는지에 따라이 방법을 선호합니다.ASP.NET WebForms : Javascript를 보이지 않는 상태로 액세스하는 방법, UpdatePanel을 통해 보이게 한 후에 렌더링하는 방법?
사용자 정의 컨트롤이 있습니다. 이 usercontrol에는 다양한 컨트롤 'onclick
및 onchange
이벤트까지 연결된 함수가 포함 된 Javascript 블록이 있습니다. 이전에는 컨트롤의 .Visible
속성이 True
이었으므로 해당 HTML과 자바 스크립트가 페이지에 렌더링됩니다.
이제 내 컨트롤의 .Visible
속성을 false
으로 설정하고 주위에 UpdatePanel을 래핑해야합니다. 이렇게하면 초기 페이지가로드되는 동안 컨트롤의 HTML이 렌더링되지 않습니다. 컨트롤의 내용을 표시하려면 사용자가 컨트롤의 .Visible
속성을 true
으로 설정하는 서버 측 메서드를 누르는 버튼을 클릭해야합니다. 이제 UpdatePanel에 있기 때문에 컨트롤은 Ajaxy 방식으로 페이지에 나타납니다. 그러나 컨트롤에있는 자바 스크립트에 액세스 할 수 없으므로 자식 컨트롤 'onclick
및 onchange
이벤트는 연관 자바 함수가 undefined
이기 때문에 작동하지 않습니다.
- JSON/AJAX (예 : 짧은 시간에 관여 너무 많은 아키텍처 재구성)
- CSS 표시 : 간결하게하기 위해에 갈 너무 복잡 이유로 활용하는 내가하지 않으려는
솔루션 : none/visibility : visible (재구성을 최소화 할 수있는만큼 서버 측 기능을 유지해야 함)
- 부모 페이지 또는 .js 파일에 Javascript를 넣으십시오 (최후의 수단으로 생각 하겠지만 서버를 참조합니다.
<#%=ControlId.ClientID %>
을 사용하여 제어합니다 .Javascript가 UserCo에 포함되어 있지 않으면이 작업을 수행 할 수 없습니다. ntrol 내가 컨트롤 'ClientIdMode
static
로 설정하지 않습니다.)
내가 정말 클라이언트에 액세스 할 수있는 방법으로 내 UserControl을에서 자바 스크립트를 유지하는 방법을 찾으려면 UpdatePanel은 UpdatePanel을 사용하여 컨트롤의 .Visible
속성을 true
으로 설정할 때 발생합니다.
혹시이에 대한 해결책을 마련 했습니까? 나는 똑같은 문제를 겪고있다. –