2009-05-29 7 views
14

Web Form을 제출할 때 클라이언트 측 유효성 검사가 수행 된 후에 약간의 Javascript를 프로세스에 삽입해야합니다.클라이언트 측 유효성 검사 후 RegisterOnSubmitStatement

RegisterOnSubmitStatement는 유효성 검사 전에 자바 스크립트를 삽입하는 것으로 보입니다.

누구나 렌더링 후 렌더링하는 방법을 알고 있습니까?

해결 방법을 찾을 : 온라인 몇 가지 조사 후

protected override OnInit(EventArgs e) { 
    Page.SaveStateComplete += new EventHandler(RegisterSaveStuff); 
    base.OnInit(e); 
} 

void RegisterSaveStuff(object sender, EventArgs e) { 
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "name", "JS code here"); 
} 
+0

죄송 좀비를 부활,하지만 나는 그것이 PreRenderComplete 이벤트를 사용하는 약간 덜 해키 생각합니다. –

답변

5

그것으로 장난, 나는 페이지의 SaveStateComplete에 접선에 의해 당신이 그것을 할 수 있다고 생각 : 를 웹 컨트롤에, 나는 이런 식으로 뭔가를 넣어 행사. 유효성 검사 제출 문이 PreRender 이벤트 중에 등록되어 있으므로 SaveStateComplete 이벤트에서 등록한 후 나중에 등록 할 수 있습니다.

다시 등록해야하지만 내 JS 용 ViewState에 의존하지 않기 때문에 큰 문제는 아닙니다.

+2

그게 훌륭합니다. 몇 가지 코드를 게시하십시오. – ichiban

+0

읽기 쉽도록 솔루션에 질문이 추가되었습니다. – Jared

8

그렇습니다. RegisterOnSubmitStatement는 init 함수에서 작동하지 않습니다. 페이지의 끝 부분에서 호출해야합니다. 바로 이곳이 그에입니다 I 일 :

"PreRenderComplete"

protected override OnInit(EventArgs e) 
{ 
    Page.PreRenderComplete+= new EventHandler(Page_PreRenderComplete); 
    base.OnInit(e); 
} 

void Page_PreRenderComplete(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "name", "JS code here"); 
} 
관련 문제