DetailsViewUpdatedEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説DetailsView コントロールは、コントロール内の Update ボタン (CommandName プロパティが "Update" に設定されたボタン) がクリックされた場合に、DetailsView コントロールが実際にレコードを更新した後に ItemUpdated イベントを発生させます。これにより、このイベントが発生するたびにカスタム ルーチン (更新操作の結果を確認するなど) を実行するイベント ハンドラを提供できます。
DetailsViewUpdatedEventArgs オブジェクトがイベント ハンドラに渡され、これにより影響を受けたレコード数および発生した例外を確認できます。更新操作の影響を受けたレコード数を確認するには、AffectedRows プロパティを使用します。例外が発生しているかどうかを確認するには、Exception プロパティを使用します。ExceptionHandled プロパティを設定することにより、イベント ハンドラで既に例外が処理されたかどうかを示すこともできます。更新されたレコードのキー フィールド値にアクセスする必要がある場合は、Keys プロパティを使用します。OldValues プロパティを使用して元のキー フィールド以外の値にアクセスしたり、NewValues プロパティを使用して更新後のキー フィールド以外の値にアクセスしたりできます。
既定では、DetailsView コントロールは、更新操作の後、DefaultMode プロパティで指定されているモードに戻ります。DetailsView コントロールを編集モードのまま維持するには、KeepInEditMode プロパティを true に設定します。
イベント処理の詳細については、「イベントの利用」を参照してください。
DetailsViewUpdatedEventArgs クラスのインスタンスの初期プロパティ値の一覧については、DetailsViewUpdatedEventArgs コンストラクタのトピックを参照してください。
使用例ItemUpdated イベントのイベント ハンドラに渡された DetailsViewUpdatedEventArgs オブジェクトを使用して、更新操作中に例外が発生したかどうかを確認する方法のコード例を次に示します。
<%@ Page language="VB" %> <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> <body> <form 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="C#" %> <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> <body> <form 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>
.NET Framework のセキュリティ
継承階層System.EventArgs
System.Web.UI.WebControls.DetailsViewUpdatedEventArgs
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照DetailsViewUpdatedEventArgs コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文Dim affectedRows As Integer Dim e As Exception Dim instance As New DetailsViewUpdatedEventArgs(affectedRows, e)
解説このコンストラクタを使用して、DetailsViewUpdatedEventArgs クラスの新しいインスタンスを初期化します。
DetailsViewUpdatedEventArgs クラスのインスタンスの初期プロパティ値を次の表に示します。
| AffectedRows | affectedRows パラメータの値。 |
| ExceptionHandled | |
| KeepInEditMode |
メモ |
|---|
プラットフォームWindows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照DetailsViewUpdatedEventArgs プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| AffectedRows | 更新操作の影響を受けた行の数を取得します。 |
| Exception | 更新操作中に例外が発生した場合は、その例外を取得します。 |
| ExceptionHandled | 更新操作中に発生した例外がイベント ハンドラで処理されたかどうかを示す値を取得または設定します。 |
| KeepInEditMode | 更新操作の後で、DetailsView コントロールを編集モードのまま維持するかどうかを示す値を取得または設定します。 |
| Keys | 更新されたレコードのキー フィールドの名前/値ペアを格納しているディクショナリを取得します。 |
| NewValues | 更新されたレコードの新しいフィールドの名前/値ペアを格納しているディクショナリを取得します。 |
| OldValues | 更新されたレコードの元のフィールドの名前/値ペアを格納しているディクショナリを取得します。 |
参照DetailsViewUpdatedEventArgs メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
参照DetailsViewUpdatedEventArgs メンバ
DetailsViewUpdatedEventArgs データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| AffectedRows | 更新操作の影響を受けた行の数を取得します。 |
| Exception | 更新操作中に例外が発生した場合は、その例外を取得します。 |
| ExceptionHandled | 更新操作中に発生した例外がイベント ハンドラで処理されたかどうかを示す値を取得または設定します。 |
| KeepInEditMode | 更新操作の後で、DetailsView コントロールを編集モードのまま維持するかどうかを示す値を取得または設定します。 |
| Keys | 更新されたレコードのキー フィールドの名前/値ペアを格納しているディクショナリを取得します。 |
| NewValues | 更新されたレコードの新しいフィールドの名前/値ペアを格納しているディクショナリを取得します。 |
| OldValues | 更新されたレコードの元のフィールドの名前/値ペアを格納しているディクショナリを取得します。 |
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
プロテクト メソッド| 名前 | 説明 | |
|---|---|---|
| Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
| MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参照- DetailsViewUpdatedEventArgsのページへのリンク
.gif)