DetailsViewUpdatedEventArgs Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные о событии ItemUpdated.
public ref class DetailsViewUpdatedEventArgs : EventArgs
public class DetailsViewUpdatedEventArgs : EventArgs
type DetailsViewUpdatedEventArgs = class
inherit EventArgs
Public Class DetailsViewUpdatedEventArgs
Inherits EventArgs
- Наследование
Примеры
В следующем примере кода показано, как использовать DetailsViewUpdatedEventArgs объект, переданный обработчику событий для события, ItemUpdated чтобы определить, произошло ли исключение во время операции обновления.
<%@ 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 CustomerDetailsView_ItemUpdated(Object sender,
DetailsViewUpdatedEventArgs e)
{
// Use the Exception property to determine whether an exception
// occurred during the insert operation.
if (e.Exception == null)
{
// Use the Values property to get the value entered by
// the user for the CompanyName field.
String keyFieldValue = e.Keys["CustomerID"].ToString();
// Display a confirmation message.
MessageLabel.Text = "Record " + keyFieldValue +
" updated successfully. ";
// Display the old and new values.
DisplayValues(e);
if (e.AffectedRows == 1)
{
MessageLabel.Text += e.AffectedRows.ToString() +
" record updated.";
}
else
{
MessageLabel.Text += e.AffectedRows.ToString() +
" records updated.";
}
}
else
{
// Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message;
// Use the ExceptionHandled property to indicate that the
// exception is already handled.
e.ExceptionHandled = true;
// When an exception occurs, keep the DetailsView
// control in edit mode.
e.KeepInEditMode = true;
}
}
void DisplayValues(DetailsViewUpdatedEventArgs e)
{
MessageLabel.Text += "<br/></br>";
// Iterate through the OldValue and NewValues
// properties and display the values.
for (int i = 0; i < e.OldValues.Count; i++)
{
MessageLabel.Text += "Old Value=" + e.OldValues[i].ToString() +
", New Value=" + e.NewValues[i].ToString() + "<br/>";
}
MessageLabel.Text += "</br>";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
runat="server">
<pagersettings position="Bottom"/>
</asp:detailsview>
<br/>
<asp:label id="MessageLabel"
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="DetailsViewSource"
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"/>
</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 CustomerDetailsView_ItemUpdated(ByVal sender As Object, ByVal e As DetailsViewUpdatedEventArgs)
' Use the Exception property to determine whether an exception
' occurred during the insert operation.
If e.Exception Is Nothing Then
' Use the Values property to get the value entered by
' the user for the CompanyName field.
Dim keyFieldValue As String = e.Keys("CustomerID").ToString()
' Display a confirmation message.
MessageLabel.Text = "Record " & keyFieldValue & _
" updated successfully. "
' Display the old and new values.
DisplayValues(e)
If e.AffectedRows = 1 Then
MessageLabel.Text &= e.AffectedRows.ToString() & _
" record updated."
Else
MessageLabel.Text &= e.AffectedRows.ToString() & _
" records updated."
End If
Else
' Insert the code to handle the exception.
MessageLabel.Text = e.Exception.Message
' Use the ExceptionHandled property to indicate that the
' exception is already handled.
e.ExceptionHandled = True
' When an exception occurs, keep the DetailsView
' control in edit mode.
e.KeepInEditMode = True
End If
End Sub
Sub DisplayValues(ByVal e As DetailsViewUpdatedEventArgs)
MessageLabel.Text &= "<br/></br>"
' Iterate through the OldValue and NewValues
' properties and display the values.
Dim i As Integer
For i = 0 To e.OldValues.Count - 1
MessageLabel.Text &= "Old Value=" & e.OldValues(i).ToString() & _
", New Value=" & e.NewValues(i).ToString() & "<br/>"
Next
MessageLabel.Text &= "</br>"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>DetailsViewUpdatedEventArgs Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DetailsViewUpdatedEventArgs Example</h3>
<asp:detailsview id="CustomerDetailsView"
datasourceid="DetailsViewSource"
autogeneraterows="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onitemupdated="CustomerDetailsView_ItemUpdated"
runat="server">
<pagersettings position="Bottom"/>
</asp:detailsview>
<br/>
<asp:label id="MessageLabel"
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="DetailsViewSource"
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"/>
</form>
</body>
</html>
Комментарии
Элемент DetailsView управления вызывает ItemUpdated событие при нажатии кнопки Обновить (кнопка со свойством CommandName
"Обновить") в элементе управления, но после DetailsView обновления записи элементом управления. Это позволяет предоставить обработчик событий, который выполняет пользовательскую подпрограмму, например проверку результатов операции обновления при каждом возникновении этого события.
Объект DetailsViewUpdatedEventArgs передается обработчику событий, что позволяет определить количество затронутых записей и любые исключения, которые могли возникнуть. Чтобы определить количество записей, затронутых операцией обновления, используйте AffectedRows свойство . Используйте свойство , Exception чтобы определить, произошли ли какие-либо исключения. Можно также указать, было ли обработано исключение в обработчике событий, задав ExceptionHandled свойство . Если вам нужно получить доступ к значениям ключевого поля для обновленной записи, используйте Keys свойство . Исходные и обновленные значения неключевых полей можно получить с помощью OldValues свойств и NewValues соответственно.
По умолчанию элемент управления возвращается в режим, DetailsView заданный свойством DefaultMode после операции обновления. Чтобы сохранить DetailsView элемент управления в режиме редактирования, присвойте свойству KeepInEditMode значение true
.
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.
Список начальных значений свойств для экземпляра класса DetailsViewUpdatedEventArgs см. в описании конструктора DetailsViewUpdatedEventArgs.
Конструкторы
DetailsViewUpdatedEventArgs(Int32, Exception) |
Инициализирует новый экземпляр класса DetailsViewUpdatedEventArgs. |
Свойства
AffectedRows |
Возвращает количество строк, на которые повлияла операция обновления. |
Exception |
Возвращает исключение, при его наличии, возникшее во время операции обновления. |
ExceptionHandled |
Получает или задает значение, позволяющее определить, обработано ли исключение, возникшее во время операции обновления, в обработчике событий. |
KeepInEditMode |
Получает или задает значение, позволяющее определить, должен ли элемент управления DetailsView оставаться в режиме редактирования после выполнения операции обновления. |
Keys |
Возвращает словарь, содержащий пары "имя-значение" поля ключа для обновленной записи. |
NewValues |
Возвращает словарь, содержащий пары "имя-значение" нового поля для обновленной записи. |
OldValues |
Возвращает словарь, содержащий пары "имя-значение" исходного поля для обновленной записи. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |