2016-11-29 146 views
0

在SQL Server 2012中使用Visual Studio 2015(VB)。這將變得很複雜,請耐心等待。在更新面板中不更新Gridview

我的問題是爲什麼不通過我的gridview更新?

我有一個網頁,在遠程服務器位置創建txt文件。這些文件然後由單獨的(第三方工具)拾取,然後將它們發送給政府機構。政府機構然後發送每個txt文件的收據文件,然後我的網絡應用程序將收到並記錄結果。結果是接受或拒絕。

在網頁上,我提供了一個顯示最後十個結果的gridview,如果我一次發送一個文件(每次點擊一下按鈕),我的gridview將刷新而不會顯示收據的結果。在創建文件,文件發送和收到的收據之間可能會有最新的差距。

下面的圖片顯示了我的gridview成功提交和接收後的一個例子。

Grid View showing results

當按鈕被點擊發送和接受列顯示爲紅色與「否」內它們。

當點擊按鈕發送文件時,會處理創建文件的子文件。然後啓動一個計時器(每隔10秒啓動一次)運行另一個子計劃以檢查發送和接收。我沒有問題,因爲它按預期工作,gridview中的每個單元格都會更改以反映發送和接收狀態。

這是通過調用構建gridview來完成的。

呼叫

displayLastSentGridView() 
    displayHistoryGridView() 
    historyUpdatePanel.Update() 

其中潛艇的構建gridview的

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 

確定這樣的請求進來,當創建一個特定文件的另外4產生(具有不同的佈局)並自動發送。我已經實現了這一點,它按預期工作。然後我使用一個新的子來檢查這些文件的狀態(因爲它們的分類是不同的)。發送文件時,網頁會更新數據庫,標記該條目已發送,當收據被接受時,會將其標記爲已接受。我的問題發生在這裏。我使用與上面相同的代碼來調用gridview更新,當發送甚至發生,並且接受進來但gridviedw不更新時。

如果我把代碼放在子程序的末尾,所有的單元格都會更新,也就是說它會一次更新gridview,所有的單元格都會變成綠色,其中的內容是Yes,但是我希望它將每個單元格更新爲數據庫通知已更改。

下面是我的代碼,它檢查文件夾位置strSentFileLocation,如果它存在數據庫更新,然後調用更新gridviews是一個excert。數據庫更新工作,但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

Info的IF語句嵌套一個FOR循環中。

回答

0

from是for循環,因爲sub從未實際完成更新面板,所以從未得到更新的機會,直到最後。我已經刪除了for循環,並添加到一個隱藏的字段中,我增加並調用sub,直到隱藏字段達到特定值。