2016-07-27 2 views
0

Excel 문서를 구문 분석하는 큰 방법이 있습니다. 전체를 분석하기 위해서는 약 10 분이 필요합니다 (예 : 많은 시트가있는 매우 큰 Excel 문서). 이 메소드는 사용자가 드롭 다운 목록에서 특정 값을 선택할 때 호출됩니다. 나는 파싱이 처리 중임을 사용자에게 보여주기 위해 패널을 차단하기 위해 다음 블록 기능을 사용하고 있습니다.내 업데이트 패널에서 차단 해제되지 않았습니다.

function lockGridUI() { 
     $('#<%=UpdPnl_RevReports.ClientID%>').block({ 
      message: $('<img src="../Images/loaders/load.gif"/>') 

     }); 

문제는 내 엑셀 문서를 위해 4 개 이상의 분 필요가있는 경우 영원히 차단 된 상태로 유지됩니다 내 패널을 구문 분석 할 수 있다는 것입니다! 차단 해제 기능을 설정하고 작동하지만 시간이 초과되었습니다. 패널을 차단 해제하려면 시간 초과를 추가하고 싶지 않습니다. 구문 분석을 위해 Excel에 필요한 시간을 알지 못하기 때문입니다.

난 뒤에 코드에서 다음과 같은 노력이 :

string sScript = ""; 
    sScript = sScript + "function unlockUI() {"; 
    sScript = sScript + @"$('#<%=UpdPnl_RevReports.ClientID%>').unblock();" ; 
    sScript = sScript + "}"; 


    // REGISTER NOW. 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "Registered Script", sScript, true); 

을 불행하게도 행운과 함께! 메서드의 끝에있는 코드에서 자바 스크립트 함수를 호출했지만 여전히 운이 없다.

내 방법이 완료 되어도 패널이 차단 된 상태로 유지되는 이유를 알지 못합니다.

제발 뭔가 제안 해 주시겠습니까?

+0

는 사용자가 처리에서 어떤 결과를 기대 하는가? 사용자에게 "티켓"을 즉시 반환하고 처리를 백그라운드에 두는 것이 좋습니다. 프로세스가 끝날 때 티켓을 사용하여 결과를 DB 또는 파일에 저장합니다. 사용자는 티켓을 사용하여 결과를 확인할 수 있습니다. –

답변

1

당신은 코드 숨김이 시도 할 수 있습니다 :

ScriptManager.RegisterStartupScript(this, this.GetType(), "Registered script", string.Format("$('#{0}').unblock();", UpdPnl_RevReports.ClientID), true); 

당신은 또한 스크립트 관리자에 비동기 포스트 백에 대한 제한 시간을 늘릴 수 있습니다

<asp:ScriptManager ID="scriptManager1" runat="server" AsyncPostBackTimeout="1800" /> 
+0

죄송합니다 다시 운! – apoellitsi

+0

이 코드가 호출 된 이벤트 핸들러를 (질문에서) 볼 수 있습니까? 그리고 동일한 기능이 아닌 경우 코드 숨김에서 긴 처리가 시작되는 방식은 무엇입니까? – ConnorsFan

+0

메서드가 존재하기 전에 함수를 호출합니다. 중단 점을 추가하면 실제로이 코드에서 전달 된 다음 메서드가 존재한다는 것을 알 수 있습니다. – apoellitsi

관련 문제