2008-09-18 5 views
3

전체 페이지 포스트 백 동안 전체적으로 범위가 지정된 배열 변수를 페이지의 클라이언트 측 javascript에 삽입하려면 다음을 사용할 수 있습니다.UpdatePanel의 ASP.NET AJAX 포스트 백 동안 클라이언트 측 JavaScript 배열 변수를 업데이트하는 가장 간단한 방법은 무엇입니까?

this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\""); 

페이지에 클라이언트 측 JavaScript 배열을 선언하고 채 웁니다. 좋고 간단합니다.

그러나 나는 UpdatePanel에서 비동기 포스트 백에서 동일한 작업을 수행하려고합니다.

지금까지 가장 가까운 점은 var 선언이 포함 된 .js 파일을 만들고 비동기 포스트 백 중에 파일을 업데이트 한 다음 ScriptManagerProxy.Scripts.Add를 사용하여 .js 파일을 페이지의 전역 범위에 추가하는 것입니다.

더 간단한 것이 있습니까? r이 일을 잘못 했니?

답변

0

업데이트 패널에서 원하는 자바 스크립트를 작성할 수있는 숨겨진 레이블을 업데이트 할 수도 있습니다. 나는 웹 서비스 나 페이지 메서드를 사용하여 업데이트 패널을 사용하는 대신 필요한 데이터를 가져 오는 것이 좋습니다.

예 : myLabel.Text = "...."; ... 논리를 여기에 넣거나 [WebMethod]를 공용 정적 페이지 메서드에 추가하고 데이터를 직접 반환 할 수 있습니다.

+0

레이블을 닫고 레이블 대신 문자 그대로 사용하십시오. –

+0

이 더 나은 해결책은 서버 - 클라이언트 - 서버 간 - 클라이언트 - 서버 간 스파이웨어 문자열을 만드는 대신 배열, 이벤트 및 제어를 사용하여 모든 클라이언트 측을 이동시켜야합니다. 감사. – Noel

3

는 정적 메소드 System.Web.UI.ScriptManager.AddStartupScript()를

스크립트는 모든 전체 및 부분 포스트 백에서 실행됩니다 사용합니다.

+0

포인터 주셔서 감사. 이것은 실제로 목록에있는 것보다 더 나은 옵션이지만 True Answer가 아니기 때문에 배열을 업데이트해야 할 때마다 자바 스크립트 블록을 만들고 등록해야했습니다. – Noel

2

샘이 맞습니다. ScriptManager.RegisterStartupScript는 함수의 올바른 이름입니다. 전체 및 부분 페이지 업데이트에서 실행됩니다.

관련 문제