修改后的数据如何自动刷新?
有下面的程序,可以更新某条数据,可是更新以后要右键页面,点“刷新”才能显示修改完的数据,怎么办?
WebForm1.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="yc.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<style type="text/css">
table {font-size:9pt;}
td {font-size:9pt;border:dotted 1px;}
</style>
</HEAD>
<body MS_POSITIONING="FlowLayout">
<form id="Form1" method="post" runat="server" action="WebForm1.aspx">
<div id="table1" runat="server" style="font-size:9pt"></div>
</form>
</body>
</HTML>
WebForm1.aspx.vb
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents Conn As System.Data.OleDb.OleDbConnection
Protected WithEvents Cmd As System.Data.OleDb.OleDbDataAdapter
Protected WithEvents table1 As System.Web.UI.HtmlControls.HtmlGenericControl
Protected WithEvents DataSet1 As System.Data.DataSet
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Conn = New System.Data.OleDb.OleDbConnection()
Me.Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Inetpub\wwwroot\MYDB.MDB"
Me.Conn.Open()
Me.Cmd = New System.Data.OleDb.OleDbDataAdapter()
Cmd.SelectCommand = New System.Data.OleDb.OleDbCommand("select * from mytable", Conn)
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If IsPostBack() Then '提交修改
Dim EditID As Integer
Dim TB_Field, FieldName As String
Dim UpdateSQL As String
EditID = Request.Form("EditID")
UpdateSQL = "update mytable set "
For Each TB_Field In Request.Form
If Left(TB_Field.ToString(), 3) = "TB_" Then
FieldName = Mid(TB_Field.ToString(), 4)
UpdateSQL += FieldName & "='" & Replace(Request.Form(TB_Field.ToString()), "'", "''") & "',"
End If
Next
If Right(UpdateSQL, 1) = "," Then UpdateSQL = Left(UpdateSQL, Len(UpdateSQL) - 1)
UpdateSQL += " where id=" & EditID
Cmd.UpdateCommand = New OleDb.OleDbCommand(UpdateSQL, Conn)
Cmd.UpdateCommand.ExecuteNonQuery()
Response.Redirect("WebForm1.aspx")
Else '显示数据
Dim DS As New System.Data.DataSet()
Response.Expires = 0
Cmd.Fill(DS, "myTable")
Dim i, j As Integer
Dim tempid As Integer
Dim FormStr As String
ID = CInt(Request.QueryString("id"))
FormStr = "<table border=0 cellspacing=0 cellpadding=2><tr bgcolor='#DEDEDE'>" & vbNewLine
For i = 0 To DS.Tables(0).Columns.Count - 1
FormStr += "<td>" & DS.Tables(0).Columns(i).Caption & "</td>" & vbNewLine
Next
FormStr += "<td>操作</td></tr>" & vbNewLine
For i = 0 To DS.Tables("mytable").Rows.Count - 1
FormStr += "<tr>" & vbNewLine
tempid = DS.Tables("mytable").Rows(i).Item("id")
If ID = tempid Then
For j = 0 To DS.Tables("mytable").Columns.Count - 1
If j = 0 Or j = 10 Then
FormStr += "<td>" & DS.Tables("mytable").Rows(i).Item(j) & "</td>" & vbNewLine
Else
FormStr += "<td><input type=text size=10 name='TB_" & DS.Tables("mytable").Columns(j).Caption & "' value='" & DS.Tables("mytable").Rows(i).Item(j) & "'></td>" & vbNewLine
End If
Next
FormStr += "<td><input type=submit name=submit value='提交'></td></tr>" & vbNewLine
RegisterHiddenField("EditID", ID)
Else
For j = 0 To DS.Tables("mytable").Columns.Count - 1
FormStr += "<td>" & DS.Tables("mytable").Rows(i).Item(j) & "</td>" & vbNewLine
Next
FormStr += "<td><a href='WebForm1.aspx?action=edit&id=" & tempid & "'>修改</a></td></tr>" & vbNewLine
End If
Next
FormStr += "</table>" & vbNewLine
table1.InnerHtml = FormStr
End If
End Sub
End Class