GridViewUpdatedEventArgs Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia dane dla zdarzenia RowUpdated.
public ref class GridViewUpdatedEventArgs : EventArgs
public class GridViewUpdatedEventArgs : EventArgs
type GridViewUpdatedEventArgs = class
inherit EventArgs
Public Class GridViewUpdatedEventArgs
Inherits EventArgs
- Dziedziczenie
Przykłady
W poniższym przykładzie pokazano, jak określić, czy wystąpił wyjątek podczas operacji aktualizacji.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void CustomersGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
{
// Use the Exception property to determine whether an exception
// occurred during the update operation.
if (e.Exception == null)
{
// Sometimes an error might occur that does not raise an
// exception, but prevents the update operation from
// completing. Use the AffectedRows property to determine
// whether the record was actually updated.
if (e.AffectedRows == 1)
{
// Use the Keys property to get the value of the key field.
String keyFieldValue = e.Keys["CustomerID"].ToString();
// Display a confirmation message.
Message.Text = "Record " + keyFieldValue +
" updated successfully. ";
// Display the new and original values.
DisplayValues((OrderedDictionary)e.NewValues, (OrderedDictionary)e.OldValues);
}
else
{
// Display an error message.
Message.Text = "An error occurred during the update operation.";
// When an error occurs, keep the GridView
// control in edit mode.
e.KeepInEditMode = true;
}
}
else
{
// Insert the code to handle the exception.
Message.Text = e.Exception.Message;
// Use the ExceptionHandled property to indicate that the
// exception is already handled.
e.ExceptionHandled = true;
e.KeepInEditMode = true;
}
}
void DisplayValues(OrderedDictionary newValues, OrderedDictionary oldValues)
{
Message.Text += "<br/></br>";
// Iterate through the new and old values. Display the
// values on the page.
for (int i = 0; i < oldValues.Count; i++)
{
Message.Text += "Old Value=" + oldValues[i].ToString() +
", New Value=" + newValues[i].ToString() + "<br/>";
}
Message.Text += "</br>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewUpdatedEventArgs Example</h3>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onrowupdated="CustomersGridView_RowUpdated"
runat="server">
</asp:gridview>
<br/>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub CustomersGridView_RowUpdated(sender As Object, e As GridViewUpdatedEventArgs)
' Use the Exception property to determine whether an exception
' occurred during the update operation.
If e.Exception Is Nothing Then
' Sometimes an error might occur that does not raise an
' exception, but prevents the update operation from
' completing. Use the AffectedRows property to determine
' whether the record was actually updated.
If e.AffectedRows = 1 Then
' Use the Keys property to get the value of the key field.
Dim keyFieldValue As String = e.Keys("CustomerID").ToString()
' Display a confirmation message.
Message.Text = "Record " & keyFieldValue & _
" updated successfully. "
' Display the new and original values.
DisplayValues(CType(e.NewValues, OrderedDictionary), CType(e.OldValues, OrderedDictionary))
Else
' Display an error message.
Message.Text = "An error occurred during the update operation."
' When an error occurs, keep the GridView
' control in edit mode.
e.KeepInEditMode = True
End If
Else
' Insert the code to handle the exception.
Message.Text = e.Exception.Message
' Use the ExceptionHandled property to indicate that the
' exception is already handled.
e.ExceptionHandled = True
e.KeepInEditMode = True
End If
End Sub
Sub DisplayValues(ByVal newValues As OrderedDictionary, ByVal oldValues As OrderedDictionary)
Message.Text &= "<br/></br>"
' Iterate through the new and old values. Display the
' values on the page.
Dim i As Integer
For i = 0 To oldValues.Count - 1
Message.Text &= "Old Value=" & oldValues(i).ToString() & _
", New Value=" & newValues(i).ToString() & "<br/>"
Next
Message.Text &= "</br>"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewUpdatedEventArgs Example</h3>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onrowupdated="CustomersGridView_RowUpdated"
runat="server">
</asp:gridview>
<br/>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Uwagi
Kontrolka GridView zgłasza zdarzenie po kliknięciu RowUpdated przycisku Aktualizuj w kontrolce, ale po zaktualizowaniu rekordu GridView przez kontrolkę. (Przycisk Aktualizuj to kontrolka przycisku, której CommandName
właściwość jest ustawiona na wartość "Update". Możesz wykonać niestandardową procedurę za każdym razem, gdy wystąpi to zdarzenie, na przykład sprawdzając wyniki operacji aktualizacji.
GridViewUpdatedEventArgs Obiekt jest przekazywany do programu obsługi zdarzeń, co umożliwia określenie liczby rekordów, których dotyczy problem, oraz wszelkich wyjątków, które mogły wystąpić. Aby określić liczbę rekordów, których dotyczy operacja aktualizacji, użyj AffectedRows właściwości . Aby określić, czy wystąpiły jakiekolwiek wyjątki, użyj Exception właściwości . Można również wskazać, czy wyjątek został obsłużony w procedurze obsługi zdarzeń, ustawiając ExceptionHandled właściwość .
Aby uzyskać dostęp do wartości pól klucza dla zaktualizowanego rekordu Keys , użyj właściwości . Dostęp do oryginalnych wartości pól innych niż klucz można uzyskać za pomocą OldValues właściwości . Dostęp do zaktualizowanych wartości pól innych niż klucz można uzyskać za pomocą NewValues właściwości .
Domyślnie kontrolka GridView powraca do trybu tylko do odczytu po operacji aktualizacji. W przypadku obsługi wyjątku, który wystąpił podczas operacji aktualizacji, możesz zachować GridView kontrolę w trybie edycji, ustawiając KeepInEditMode właściwość na true
.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.
Aby uzyskać listę początkowych wartości właściwości dla wystąpienia GridViewUpdatedEventArgs klasy, zobacz GridViewUpdatedEventArgs konstruktor.
Konstruktory
GridViewUpdatedEventArgs(Int32, Exception) |
Inicjuje nowe wystąpienie klasy GridViewUpdatedEventArgs. |
Właściwości
AffectedRows |
Pobiera liczbę wierszy, których dotyczy operacja aktualizacji. |
Exception |
Pobiera wyjątek (jeśli istnieje), który został zgłoszony podczas operacji aktualizacji. |
ExceptionHandled |
Pobiera lub ustawia wartość wskazującą, czy w procedurze obsługi zdarzeń został zgłoszony wyjątek, który został zgłoszony podczas operacji aktualizacji. |
KeepInEditMode |
Pobiera lub ustawia wartość wskazującą, czy kontrolka GridView powinna pozostać w trybie edycji po operacji aktualizacji. |
Keys |
Pobiera słownik zawierający pary nazwa/wartość pola klucza dla zaktualizowanego rekordu. |
NewValues |
Pobiera słownik zawierający nowe pary nazwa/wartość pola dla zaktualizowanego rekordu. |
OldValues |
Pobiera słownik zawierający oryginalne pary nazwa/wartość pola dla zaktualizowanego rekordu. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |