2013-10-15 6 views
1

page_load에 두 개의 경고를 표시하려고하는데 ScriptManager가 첫 번째 스크립트를 실행하기 만합니다. 나는 진짜로 해야할지 모르겠지만 누군가 나를 도울 수 있습니까?ScriptManager.RegisterStartupScript는 2 개의 스크립트를 수신하지만 하나의 스크립트 만 실행합니다.

여기가 내 테스트 코드입니다. 이 메서드는 Load 메서드 내부에 있습니다.

+4

Key 매개 변수는 고유해야합니다. 'Script'+ DateTime.Now.Millisecond '를 입력하면 두 경우 모두 동일한 이름을 얻을 수 있습니다. 이 경우 스크립트는 덮어 씁니다. – HiperiX

+2

더 나아가 모든 스크립트를 단일 문자열로 결합하고 하나의'RegisterStartupScript' 만 실행하십시오. 힌트 : 다소 복잡한 스크립트를 작성하는 경우 StringBuilder를 사용할 수 있습니다. –

+0

병합을 수행하는 것이 길이었습니다! 고맙습니다! –

답변

4

주석에서 언급했듯이 두 등록에 대해 동일한 키가 사용 중입니다.

Page currentPage = (Page)HttpContext.Current.Handler; 

ScriptManager.RegisterStartupScript(currentPage, typeof(string), 
    "Script" + Guid.NewGuid, "alert('1!');", true); 
ScriptManager.RegisterStartupScript(currentPage, typeof(string), 
    "Script" + Guid.NewGuid, "alert('2!');", true); 

를 또는 하나 하나에 모두 스크립트를 병합 한 등록합니다이 방법을 사용해보십시오.

+0

병합을하는 것이 길이었습니다! 고맙습니다! –