내 문제는 클라이언트에서 동적으로 생성 된 html/javascript에서 서버 쪽 이벤트 (예 : DeleteClicked)를 호출하는 것과 관련이 있습니다. 나는 .net에 깊이 뿌리 내린 내 웹 사이트에 기존 페이지가있다. 페이지 라이프 사이클은 꽤 복잡하고 페이지에서 해고 될 수있는 수십 가지 이벤트가 있습니다.동적으로 추가 된 클라이언트 스크립트/HTML 서버 쪽 이벤트 호출
페이지가 이미로드 된 후 일부 JQuery 기능을 활용하고 추가 링크와 버튼을 추가하기를 원합니다. 예를 들어 특정 이미지 위에 작은 마우스 오버 그래픽을 표시하려고합니다. 작은 마우스 오버 그래픽은 삭제, 편집 등과 같은 기능을 제공합니다. 전체 클라이언트 페이지주기를 스레 싱 (또는 우회)하지 않고도 클라이언트 쪽 생성에 대한 클릭 이벤트를 서버 쪽 이벤트에 연결하고 싶습니다.
지금까지 내가 생각할 수있는 유일한 해결책은 페이지 전체에 숨겨진 asp.net 컨트롤을 삽입하는 것입니다. 클라이언트 측 코드는 숨겨진 컨트롤에서 수동으로 클릭()을 강제합니다. 불행히도 나는 이것이 내가 페이지를로드 할 때 불려야 할 모든 이벤트를 반드시 알 필요가 없기 때문에 이것이 받아 들일 수 있다고 생각하지 않는다. 나는 또한 꼭 필요한 것은 아닌 마크 업을 고객에게 보내는 팬이 아니다.
제 질문에 의미가 있습니까? 어떤 도움이라도 대단히 감사하겠습니다!
WebMethod를 사용할 때의 문제점은 내 페이지가 바인딩되는 기본 데이터를 변경할 수 있다는 것입니다. 그런 다음 다른 AJAX가 호출되고 WebMethod에 충돌 한 후 asp.net 컨트롤에서 이벤트를 발생 시키면 해당 컨트롤이 더 이상 존재하지 않을 수 있기 때문에 이벤트가 유효하지 않을 수 있습니다. 역동적 인 html/javascript가 일반 페이지 수명주기를 사용하는 방법이 필요합니다. WebMethod는 "실제 AJAX"이며 페이지 수명주기를 우회합니다. – jakejgordon
'onsuccess'자바 스크립트 핸들러를 웹 메소드 호출에 연결하면 웹 메소드를 통해 이벤트가 성공적으로 완료된 후에 javascript/jquery를 사용하여 컨트롤을 업데이트 할 수 있습니다. 호출이 실패하면 필요한 모든 정리를 수행 할 수 있도록 실패한 javascript 핸들러를 연결할 수도 있습니다. –
이것은 점점 뜨거워 질 것입니다. 내가 볼 수있는 유일한 명백한 문제는 기본적으로 WebMethod 작업을 수행하는 서버와 우리가 기본적으로 수행해야하는 onsuccess 중 하나를 처리하기 위해 서버에 2 개의 요청을 수행해야한다는 것입니다. 페이지 (또는 적절한 업데이트 패널)를 다시로드하십시오. – jakejgordon