Gridview未在更新面板

时间:2016-11-29 16:42:45

标签: vb.net gridview sql-server-2012

将Visual Studio 2015(VB)与SQL Server 2012一起使用。这将很复杂,请耐心等待。

我的问题是为什么我的gridview不会更新?

我有一个网页,可以在远程服务器位置创建txt文件。然后,这些文件由单独的(第三方工具)接收,并将其发送给政府机构。然后政府机构为每个txt文件发送一个收据文件,我的网络应用程序随后将其取出并记录结果。结果是接受或拒绝。

在网页上,我提供了一个显示最后十个结果的网格视图,如果我一次发送一个文件(每次点击按钮),我的网格视图将刷新而不会显示收据的结果。创建文件,发送文件和收到收据之间可能存在最短的差距。

下图显示了成功提交和接收后的gridview示例。

Grid View showing results

单击按钮时,已发送和已接受的列显示为红色,其中包含“否”。

单击该按钮发送文件时,将处理创建该文件的子项。然后启用计时器(每十秒触发一次)运行另一个子计时器以检查已发送和收据。我对此没有任何问题,因为它按预期工作,并且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个(具有不同的布局)并自动发送。我实现了这个,它按预期工作。然后我使用一个新子来检查这些文件的状态(因为它们的分类不同)。当发送文件时,网页更新数据库,将数据标记为已发送,当接收被接受时,它将其标记为已接受。我的问题出现在这里。我使用与上面相同的代码在发送偶数时以及当接受但是gridviedw没有更新时调用gridview更新。

如果我将代码放在子例程的末尾,所有单元格都会更新,即它会一次更新gridview,所有单元格都会变为绿色,但是我希望它将每个单元格更新为数据库通知已更改。

以下是我的代码中的一个例外情况,它检查文件夹位置strSentFileLocation是否存在,数据库已更新,然后进行更新网格视图的调用。数据库更新有效,但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

我的更新面板设置为有条件。

任何帮助非常感谢。谢谢

更新

有关信息,IF语句嵌套在FOR循环中。

1 个答案:

答案 0 :(得分:0)

from是for循环,因为sub从未真正完成更新面板,直到最后才有机会更新。我删除了for循环并添加了一个隐藏字段,我增加并调用sub,直到隐藏字段达到特定值。