2010-11-24 3 views
3

나는 노래 재생 목록을로드하는 페이지가 있습니다. 재생 목록의 개별 노래는 jquery로 재생 목록에서 드래그 할 수 있습니다. 이 페이지는 또한 ajax 업데이트 패널로 서버 측 정렬을 통합합니다. 문제는 내가 서버 측 정렬을 한 후에 jquery 메서드가 더 이상 작동하지 않는다는 것입니다.asp.net ajax jquery

asp.net 아약스 패널이 페이지를 업데이트 한 후 jquery 메소드가 문서에 다시 연결 되나요?

답변

0

업데이트 패널을 사용하는 경우 문제가 있습니다. 페이지가로드 될 때마다 서버 측에서 자바 스크립트를 추가해야합니다.이 스크립트는 모든 자바 스크립트 코드를 문자열 변수에 추가하여 추가 할 수 있습니다 ScriptManager.RegisterStartupScript(this, this.GetType(), "validation", script, false);를 사용하여 기능 및 인수에 대한 자세한 정보를 얻을 "http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript.aspx/로 이동하시기 바랍니다.

당신은 모든 자바 스크립트 함수는 문자열 script에 추가 될 예정이

private void addScript() 
     { 
      string script = @"<script type=""text/javascript"" language=""javascript""> 
       javascript function including jquery 
       </script>"; 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "validation", script, false); 
     } 

같은 기능을 할 수 있습니다. 전화 pageload.So의 기능 그것은 페이지에 다시 추가됩니다. 이것이 문제를 해결할 것이라고 생각합니다.

+0

StreamReader localStreamReader = 새 StreamReader (Server.MapPath ("scripts/PlaylistEditing.js")); string localScript = localStreamReader.ReadToEnd(); ScriptManager.RegisterStartupScript (this, this.GetType(), "Movement", localScript, false); 이것이 내가 한 일이다. – ChampChris

+0

아직도 작동하지 않습니까? – kbvishnu

+0

이것은 나를 위해 일했다. 감사합니다. – ChampChris

0

은 JQuery와 방법은 패널은 페이지를 업데이트 asp.net 아약스 후 문서에 를 다시 연결합니까?

짧은 답변은 document.ready 이벤트에 바인딩되어 있지 않습니다. "빠르고 더러운"픽스는 pageLoad를 사용하는 것입니다. this forum thread을 확인하십시오.

1

엘리먼트가 ajax 업데이트로 대체되고 드래그 작업을 만드는 jquery 이벤트 바인딩이 엘리먼트 자체에 있다면, 그렇다. 이벤트 바인딩은 새로운 엘리먼트에 없을 것이다.

하나의 옵션은 ajax 성공 콜백에서 초기화 메소드가 해당 이벤트 바인딩을 다시 작성하는 것입니다. 또 다른 옵션은 jQuery의 delegate() 메서드를 사용하여 해당 이벤트 핸들러를 셀렉터와 일치하는 특정 컨테이너 내의 모든 요소 (바인딩이 설정된 후에 추가 된 경우에도)에 바인딩하는 것입니다.

0

내가 해요 u'll하여 업데이트 패널이 파산하면 내가 항상 곁에 성가신 $ 아약스, aruments 많은 갈등

에 문제가

$("body").append("<div style='display:none;'></div>"); 
$("div:last").load("url.aspx?id=1", function(response, status, xml){ ...do stuff }); 

를 .load 사용하는 것이 더 행복 할 수 있는지 , 여전히 자바 스크립트를 사용하여 다시 게시 할 수 있습니다 __doPostBack (elmID, args);