0

I 일반 실제로 중 하나를 사용자 정의 조각 스크립트의 추가 또는 JS 파일을 등록하기 전에 다음과 같은 방법을 사용시 :등록 ClientScriptBlock 한 번만 여러 포스트 백 내 asp.net 웹 사이트에서

IsClientScriptBlockRegistered(Type, String) 

IsClientScriptIncludeRegistered(Type, String) 

이 페이지는 사용자 정의 조각을 필요로 할 때 스크립트의 PageRoad 중 어딘가에 IsClientScriptBlockRegisterd() 다음에 RegisterClientScriptBlock()이 붙습니다.

if (!Page.ClientScript.IsClientScriptBlockRegistered(typeof(Page), "myKey")) 
{ 
    // Start creating ScriptBlock // 
    // .. // 

    // Actually Register the script // 
    ToolkitScriptManager.RegisterClientScriptBlock(this, typeof(Page), "myKey", 
    sbScript.ToString(), false); 
} 

위의 코드는 항상 포스트 백 중에 한 번만 호출됩니다.

사용자가 관련 페이지에있을 때 해당 페이지에 머물러 있으면 콜백이 아닌 실제 포스트 백이 발생할 수 있습니다. 포스트 백 동안 GetRegisteredClientScriptBlocks 메서드는 항상 빈 컬렉션을 반환합니다. 따라서 IsClientScriptBlockRegistered은 항상 false를 반환합니다. 따라서 각 포스트 백에 대해 사용자 지정 scriptblock을 다시 만들고 페이지에 다시 등록한 다음 클라이언트에 다시 보내야합니다.

사용자 정의 scriptblock을 등록하고 사용자가 관련 페이지에 머물러있는 한 또는 사용자 세션이 활성화되어있는 동안 클라이언트에 존재하게하는 방법이 있습니까?

미리 감사드립니다.

또는 Page.IsPostback()

, 당신은 플래그/쿠키의 일종을 통과 할 수/숨겨진 : 당신이 ASP.Net 웹폼을 사용하는 가정

답변

0

, 당신은 다시 게시인지 여부를 확인하기 위해 다음과 같은 속성을 사용할 수 있습니다 이 특정 페이지에 등록 할 클라이언트 스크립트가 필요하지 않음을 나타내는 변수.

+0

답장을 보내 주셔서 감사합니다. 나는 당신이 그 질문을 이해했다고 생각하지 않는다. 페이지에 등록 된 클라이언트 스크립트가 필요합니다. 나는 단지 그것을 반복해서하고 싶지 않다. IsPostback-check를 추가하면 클라이언트 스크립트가 전혀 생성되지 않습니다. – Brabbeldas