2016-11-29 4 views
0

SQL Server 2012에서 Visual Studio 2015 (VB)를 사용하십시오.Gridview가 업데이트 패널 내에서 업데이트되지 않습니다.

제 질문은 왜 내 gridview 업데이트가되지 않습니까?

원격 서버 위치에 txt 파일을 만드는 웹 페이지가 있습니다. 이 파일들은 정부 기관에 보내는 별도의 도구 (타사 도구)에 의해 선택됩니다. 정부 기관은 각 txt 파일에 대한 영수증 파일을 보내서 웹 응용 프로그램이 그 결과를 집계하여 기록합니다. 그 결과는 수용 또는 거절 중 하나입니다.

웹 페이지에서 마지막 10 개의 결과를 보여주는 gridview를 제공하며 한 번에 하나의 파일 (버튼을 누를 때마다)을 보내면 영수증 결과를 보여주는 문제없이 내 gridview가 새로 고쳐집니다. 파일 생성, 파일 전송 및 수신되는 수신 사이에 최대 간격이있을 수 있습니다.

아래 이미지는 제출 및 수신에 성공한 후의 gridview 예제입니다. 버튼이 그 안에 '아니오'로 빨간색으로 보내 받아 열 표시를 클릭으로

Grid View showing results

.

버튼을 클릭하여 파일을 보내면 파일을 만드는 하위가 처리됩니다. 그런 다음 송수신 확인을 위해 다른 하위를 실행하는 타이머가 활성화됩니다 (10 초마다 실행). 예상대로 작동하고 그리드 뷰 내의 각 셀이 보낸 상태와 영수증 상태를 반영하여 변경되므로 아무런 문제가 없습니다.

이 작업은 gridview 빌드를 호출하여 수행됩니다.

호출 특정 파일이 다른과 (추가 4가 생성 생성 될 때

Public Sub displayLastSentGridView() 

    Dim mlastSent As New lastSent 
    Dim mLastSents As New List(Of lastSent) 
    mLastSents = mlastSent.lastSentGridView 
    gridLastSent.DataSource = mLastSents 
    gridLastSent.DataBind() 

End Sub 

그렇게 요청이 들어왔다 확인있는 gridview를 구축 할 수있는 잠수정의

displayLastSentGridView() 
    displayHistoryGridView() 
    historyUpdatePanel.Update() 

하나 레이아웃) 및 자동 전송. 나는 이것을 구현했으며 예상대로 작동한다. 그런 다음 새 하위를 사용하여 이러한 파일의 상태를 확인합니다 (분류가 다른 경우). 파일이 전송되면 웹 페이지는 항목을 보낸 것으로 플래그를 지정하는 데이터베이스를 업데이트하고, 영수증이 수락되면이를 수락 된 것으로 플래그합니다. 내 문제가 여기에 발생합니다. 위와 동일한 코드를 사용하여 보낸 사람이 보내고 받아 들여지지만 gridviedw가 업데이트되지 않을 때 gridview 업데이트를 호출합니다.

서브 루틴의 끝 부분에 코드를 삽입하면 모든 셀이 업데이트됩니다. 즉, 한 번에 gridview를 업데이트하고 모든 셀이 예를 들어 녹색으로 바뀌지 만 각 셀을 데이터베이스 통지가 변경됩니다.

아래 코드는 폴더 위치를 확인하는 코드입니다. strSentFileLocation 데이터베이스가 있으면 데이터베이스가 업데이트되고 gridviews를 업데이트하라는 호출이 이루어집니다. 데이터베이스 업데이트는 작동하지만 GridView는 변경되지 않습니다.

If File.Exists(strSentFileLocation) Then 

    db.ngc_updateActivityLogSent(True, seq) 
    db.ngc_updateActivityLogRejected(False, "N/A", seq) 
    db.ngc_updateActivityLogAccepted(False, seq) 

    'update gridviews 
    displayLastSentGridView() 
    displayHistoryGridView() 
    historyUpdatePanel.Update() 

End If 

내 업데이트 패널이 조건부로 설정되어 있습니다.

도움을 주시면 감사하겠습니다.감사합니다

UPDATE

는 정보의 경우 IF 문은 FOR 루프 내에 중첩된다.

답변

0

from은 for 루프였습니다. 서브가 실제로 끝나지 않았기 때문에, 업데이트 패널은 끝까지 오른쪽으로 업데이트 할 기회를 얻지 못했습니다. for 루프를 제거하고 숨겨진 필드를 추가하여 숨겨진 필드가 특정 값에 도달 할 때까지 하위를 호출하고 호출합니다.

관련 문제