Моя DataGrid на веб-странице, созданной с использованием VB.Net 2003, получает данные из SQL и содержит столбец «Флаг».В каждой строке добавлен столбец кнопок, так что флаг для строки может меняться между «Активным» и «Неактивным» одним щелчком мыши.
Вот код:
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
Как бы то ни было, чтобы имитировать автоматическое обновление данных в столбце «Флаг», мне нужно обновить всю веб-страницу, чтобы получить эти последние данные.Однако чем больше объем данных, тем больше времени требуется для загрузки.
Кроме того, на веб-странице добавлена функция фильтра, позволяющая отображать определенные строки данных.Таким образом, пользователь может изменить флаг без необходимости слишком много прокручивать.
В связи с тем, что страница обновляется при каждом изменении флага, DataGrid сбрасывается для отображения полной таблицы.
Есть ли способ обновить DataGrid без обновления всей страницы, сохранив при этом все настройки фильтра?