2010-12-06 2 views
0

오전 모두.패널이 업데이트 된 후 자바 스크립트가 실행되도록하려면 어떻게해야합니까?

어때요? 훌륭합니다.

I가 내가 확인하기 위해 사용하고 코드의 작은 비트를 다음/내 페이지에서 라디오 버튼의 몇 가지를 선택 취소 :

<script type="text/javascript"> 

function SetOption1RadioButton() { 
    document.getElementById('<%=radOption1.ClientID%>').checked = true; 
    document.getElementById('<%=radOption2.ClientID%>').checked = false; 

</script> 

는 그때 뒤에 코드에서 몇 가지 컨트롤이 할당 추가 이 페이지로드 :

protected void Page_Load(object sender, EventArgs e) 
     {    
      SetJavascriptAttributes();   
     } 

public void SetJavascriptAttributes() 
     { 
       ddl1.Attributes.Add("onFocus", "SetOption1RadioButton()"); 
       ddl1.Attributes.Add("onClick", "SetOption1RadioButton()"); 
     } 

이제는 초기로드 - 멋진 물건에 잘 작동합니다. ddl1을 클릭하면 그에 따라 라디오 버튼이 설정됩니다. 그러나 업데이트 패널이 다시 게시되면 자바 스크립트가 더 이상 작동하지 않습니다.

HTML이 다시 전송되고 자바 스크립트가 더 이상 존재하지 않기 때문에 이것이라고 생각합니다.

패널 게시판 업데이트가 업데이트 되었음에도 불구하고 자바 스크립트가 조금 더 오래 머무르고 제대로 작동하는지 확인하려면 어떻게해야합니까?

감사의 말씀을 전한 도움이나 제안.

답변

0

업데이트 패널을 사용하고 있으므로 귀하의 페이지에 이미 ScriptManager이라는 이름이 붙어 있다고 가정합니다. 스크립트 관리자가 마스터 페이지에 배치됩니다 - -

ScriptManager.RegisterStartupScript(); 
ScriptManager.RegisterExpandoAttribute(); 
+0

안녕하세요 데얀이 어떤 차이를 만들 것입니다 : 당신이 모든 클라이언트 스크립트를 등록 할 ScriptManager를 사용하는 것이 좋습니다,이는이 부분 포스트 백에 호출되는 보험에 가입 할 것인가? –

+0

아니, 차이가 없어야합니다. ScriptManager 클래스의 정적 인스턴스를 사용하는 경우 위 메소드에서 'control'매개 변수에 넣은 컨트롤이 현재 페이지의 컨트롤 트리에 포함되어있는 한 마스터 페이지에서 ScriptManager 인스턴스를 찾아야합니다 (컨트롤 페이지에 이미 추가되었습니다. 컨트롤 트리에 컨트롤 dinamycaly를 추가하지 않으면이 점에 대해 걱정하지 마십시오. 따라서 간단히 말해서, 아니요. – dejanb

관련 문제