내가 jQuery를 AJAX 및 asp.NET WebMethod
들 및 세션 변수를 이용하여 해결 방법을 발견했다.
작업자 스레드가 업데이트 한 세션 변수에 WebMethod
검사를 사용하여 이전 questions에서 방법을 사용했습니다.
작업자 스레드 :
Session["progress"] = "{\"current\":" + (i + 1) + ", \"total\":" + dt.Rows.Count + "}"
의 WebMethod :
[WebMethod]
public static string GetProgress()
if (HttpContext.Current.Session["progress"] == null) {
return "{\"current\":1,\"total\":1}";
} else {
return HttpContext.Current.Session["progress"];
}
}
내 jQuery를 기본적으로 AJAX는 매초마다 WEBMETHOD 것을 호출 루프. 그것은 페이지로드에서 시작하고 current = total
이면 "Completed"를 표시하고 루프를 지우거나 그렇지 않으면 "total [of]"행 처리 중 "을 표시합니다. 나는 심지어 a를 추가했다 jQuery UI Progressbar
이것은 수동의 종류 다. 그러나 약간의 오버 헤드와 함께, 나의 문제를 해결한다. 예상치 못한 좋은 점은 Session 변수를 사용하고 WebMethod가 페이지로드를 검사하기 때문에 작업자 스레드가 활성 상태이면 페이지를 탐색하여 페이지로 돌아가더라도 진행 막대가 표시된다는 것입니다.
저는'UpdatePanel' /'UpdateProgress' 컨트롤을 알고 있지만 과거에는 너무 많은 문제가있었습니다. 나는 또한 'UpdateProgress' 컨트롤에 표시 할 특정 값을 알려주는 방법을 찾지 못하는 것 같습니다 (예 : "[n]의 행 처리 중"). – tedski