如何使DataGrid无需刷新页面即可更改数据行? [VB.Net 2003]

时间:2019-02-11 09:33:51

标签: vb.net visual-studio-2003

使用VB.Net 2003创建的Web页面中的My DataGrid从SQL获取数据并包含一个Flag列。每行都添加了一个按钮列,因此,只需单击一下,行的标志就可以在“有效”和“无效”之间切换。

代码如下:

Private Sub CellClick(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.ItemCommand

    Session("Emp") = e.Item.Cells(2).Text
    Session("Course") = e.Item.Cells(0).Text
    Session("Flag") = e.Item.Cells(8).Text

    'Change Flag Status in SQL
    If Session("Flag") = "Active" Then
        Dim updateState As String = "update [DB3].[dbo].[EMP_COURSE]" _
                            & "set [Flag] = 'Inactive'" _
                            & "where Employee_No = '" & Session("Emp") & "'" _
                            & "and CourseCode = '" & Session("Course") & "'"

        Dim conn = SQLDB
        Dim command As New SqlCommand(updateState, conn)


        conn.open()
        command.ExecuteNonQuery()
        conn.close()

        conn.dispose()
        command.Dispose()

    ElseIf Session("Flag") = "Inactive" Then
        Dim updateState As String = "update [SQLDB3].[dbo].[EMP_COURSE]" _
                            & "set [Flag] = 'Active'" _
                            & "where Employee_No = '" & Session("Emp") & "'" _
                            & "and CourseCode = '" & Session("Course") & "'"

        Dim conn = SQLDB
        Dim command As New SqlCommand(updateState, conn)


        conn.open()
        command.ExecuteNonQuery()
        conn.close()

        conn.dispose()
        command.Dispose()

    End If

    'auto-refresh page
    Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)

End Sub

实际上,为了模拟Flag列自动刷新其数据,我对整个Web页面进行了刷新以获取最新数据。但是,随着数据量的增加,加载所需的时间也会更长。

我还在网页中添加了一个过滤器功能,以显示特定的数据行。这样,用户可以更改标志而不必向下滚动太多。

由于每次更改标志都会刷新页面,因此DataGrid会重置为显示完整表。

有没有一种方法可以刷新DataGrid而不刷新整个页面,同时保留所有已完成的过滤器设置?

0 个答案:

没有答案