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