2010-12-15 8 views
0

마크 업 js 파일에 바인딩하는 asp.net 페이지가 있습니다. Js 파일은 주로 클래스 이름별로 함수 세트로 작업합니다. 이 함수에서는 WCF를 사용하여 서버에서 데이터를 가져오고 상태 및 데이터 만 변경합니다. 또한 페이지에 나는 다시 게시합니다. 모든 것은 괜찮지 만 내 jquery 함수는 그 후에 작동하지 않습니다. 다시 게시 후 jquery 로직에 관여하지 않는 그리드에만 행을 추가합니다.ASP.NET은 포스트 백 이후에 jquery 바인딩을 잃습니다.

하지만

$ (문서) .ready에

$ (문서) .ready (함수()

$jq("#ctrlID").change(function() { });) 

에서 나의 논리를 변경하는 경우 (함수()

$jq("#ctrlID").live('change', function() { });) 

모두 정상적으로 작동합니다.

나는 당황합니다. 그게 뭐야? 컨트롤을 추가하지 않습니다.

답변

2

DOM이 준비되면 (문서) .ready()가 실행됩니다. 그러나 ajax 비동기 포스트 백에는 실행되지 않으므로 모든 바인딩이 손실됩니다. Live()는 기본적으로 바인딩을 '활성'상태로 유지합니다. 또 다른 솔루션은 ASP.NET 클라이언트 프레임 워크의 일부인 pageLoad() 클라이언트 측 이벤트를 사용하는 것입니다. 이 메소드는 일반적인 포스트 백과 부분 포스트 백에서 시작되며 사용자가 평상시처럼 이벤트를 바인딩 할 수 있습니다. 당신은 다시 게시 또는 비동기 포스트 백에 있다면

function pageLoad(sender, args) 
{ 
// Your event bindings here 
} 

또한 결정 args.get_isPartialLoad()를 사용할 수 있습니다.

관련 문제