2013-11-27 2 views
0

는 다음 코드 한 -로드 자바 스크립트 기능이

public void populateTerm() 
    { 

     Term = "Test";  
     ScriptManager.RegisterStartupScript(this, GetType(), "term","useTerm()", true); 

    } 

그리고 자바 스크립트가 기간 사용할 수에 - -

function useTerm() { 
        var Term = <%= Term %>; 
        // use Term 
       } 

를이 잘 작동

protected string Term 
    { 
     get { return this.ViewState["Term"] != null ? (string)this.ViewState["Term"] : ""; } 
     set { this.ViewState["Term"] = value; } 
    } 

그런 다음 Term 설정 버튼이 눌려 졌을 때 페이지가 다시로드 될 때 populateTerm()이 발생했습니다. 그러나 그 이후로 버튼을 updatePanel으로 옮겼습니다. 전체 페이지가 버튼 클릭 (업데이트 패널 만)에 다시로드되지 않기 때문에 useTerm()이 호출되지 않고 <%= Term %>이 null이라는 의미입니다.

updatePanel 코드를 제거하면 정상적으로 작동합니다. updatePanel에서 어떻게 작동합니까?

답변

0

useTerm이 aspx 페이지에 있다고 가정하면 해당 스크립트 블록을 UpdatePanelContentTemplate 내에 옮길 수 있습니다.

function useTerm(term) { 
    // use term 
} 

다음 Term의 최신 값으로 전화 :

public void populateTerm() 
{ 

    Term = "Test";  
    string script = string.Format("useTerm('{0}');", Term); 
    ScriptManager.RegisterStartupScript(this, GetType(), "term", script, true); 

} 
+0

스크립트를 추가

또 다른 용어가 매개 변수로 전달되도록 자바 스크립트 기능을 변경하는 것 블록은 두 번째 작업을 수행하지 못했습니다! – Ebikeneser