将Visual Studio 2015(VB)与SQL Server 2012一起使用。这将很复杂,请耐心等待。
我的问题是为什么我的gridview不会更新?
我有一个网页,可以在远程服务器位置创建txt文件。然后,这些文件由单独的(第三方工具)接收,并将其发送给政府机构。然后政府机构为每个txt文件发送一个收据文件,我的网络应用程序随后将其取出并记录结果。结果是接受或拒绝。
在网页上,我提供了一个显示最后十个结果的网格视图,如果我一次发送一个文件(每次点击按钮),我的网格视图将刷新而不会显示收据的结果。创建文件,发送文件和收到收据之间可能存在最短的差距。
下图显示了成功提交和接收后的gridview示例。
单击按钮时,已发送和已接受的列显示为红色,其中包含“否”。
单击该按钮发送文件时,将处理创建该文件的子项。然后启用计时器(每十秒触发一次)运行另一个子计时器以检查已发送和收据。我对此没有任何问题,因为它按预期工作,并且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
循环中。
答案 0 :(得分:0)
from是for循环,因为sub从未真正完成更新面板,直到最后才有机会更新。我删除了for循环并添加了一个隐藏字段,我增加并调用sub,直到隐藏字段达到特定值。