2010-04-01 3 views
0

우리는 IScriptControl을 사용하여 javascript 객체를 UserControls 및 ServerControl에 묶었으며 정상적으로 작동합니다.Web.UI.Page의 IScriptControl과 동일한 기능은 무엇입니까?

문제는 ASP.NET이 페이지에 자바 스크립트 개체를 묶는 방법을 제공하지 않는 것 같습니다. 지금까지 우리는 전역 네임 스페이스에 평범한 함수를 넣었지만, 그 연습에 심각한 알레르기를 일으키고 있습니다.

우리 함수를 자바 스크립트 클래스로 랩핑하고 페이지에 자바 스크립트 파일을 포함하는 것은 쉽지만 객체를 인스턴스화하는 방법, 콜백 이벤트에서 참조하는 방법, 데이터를 전달하는 방법 그것은 코드 숨김에서, 나는 알아 내지 못했다.

또는 오히려, 우리가 지금까지 사용해 온 방법 (숨겨진 필드, 방출 된 자바 스크립트 문자열 등), 정말 버그.

누구나 더 좋은 아이디어가 있습니까?

답변

0

JS 파일과 페이지를 빌드하지 않는 한 페이지간에 연결이 없습니다. 스크립트 컨트롤을 사용하여 상태를 저장하는 일반적인 방법은 숨겨진 필드입니다 (ACT는이 방법을 사용합니다). 서버와 통신하는 유일한 다른 방법은 웹 서비스 호출, 게시 된 데이터 양식 또는 __doPostBack (AJAX가 아님)을 호출하는 것입니다.

두 아키텍처를 연결하는 기본 아키텍처를 만들 수 있습니다. 스크립트 컨트롤을 사용하여 서버는 $ create 문을 렌더링하여 서버에서 클라이언트로 속성 및 이벤트 처리기를 전달합니다. 서버에 다시 게시되는 데이터는 숨겨진 변수에 저장되고 (대부분의 스크립트 라이브러리가있는) 클라이언트에서 처리되므로 스크립트 제어 및 ACT가이를 많이 숨기고 원하는 경우이 중 일부를 빌드해야합니다 이것을 자동화하십시오. 이 기능을 사용자 정의하려는 경우 수행 할 작업에 대한 아이디어를 제공하기 위해 클라이언트 - 서버 상호 작용을 연구하는 데 도움이 될 수 있습니다.

재밌 네요, 제 코드는 Nucleo 프로젝트 (제 3 자 라이브러리)에 대해 똑같은 생각을하고 있었지만, 아직 그것에 대해 모르겠습니다.

+0

다른 사람이 빌드하지 않는 한 자바 스크립트와 페이지간에 연관성이 없습니다. ScriptControl을 사용하여 MS는 UserControls 및 ServerControl에 대한 통신을 제공하는 구조를 구축했습니다. 저에게 그들이 페이지뿐만 아니라 가질 수 없다는 것이 이상하게 보입니다. –

관련 문제