ObjectDataSourceView.DeleteMethod プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データを削除するために ObjectDataSourceView オブジェクトが呼び出すメソッドまたは関数の名前を取得または設定します。
public:
property System::String ^ DeleteMethod { System::String ^ get(); void set(System::String ^ value); };
public string DeleteMethod { get; set; }
member this.DeleteMethod : string with get, set
Public Property DeleteMethod As String
プロパティ値
データを削除するために ObjectDataSourceView が使用するメソッドまたは関数の名前を表す文字列。 既定値は、空の文字列 ("") です。
例
次のコード例では、ビジネス オブジェクトとコントロールでコントロールを ObjectDataSource 使用してデータを GridView 削除する方法を示します。 は GridView 、プロパティで SelectMethod 指定された メソッドを使用してオブジェクトからデータを取得する、すべての従業員のセットを最初に EmployeeLogic
表示します。 プロパティが AutoGenerateDeleteButton に true
設定されているため、コントロールは GridView 自動的に [削除 ] ボタンを表示します。
[削除] ボタンをクリックすると、 Delete プロパティで指定されたメソッドと、コレクションにDeleteMethod指定されているパラメーターを使用して操作がDeleteParameters実行されます。 このコード例では、いくつかの前処理と後処理の手順も実行されます。 デリゲートはNorthwindEmployeeDeleting
、操作が実行される前にイベントをDeleteDeleting処理するために呼び出されNorthwindEmployeeDeleted
、デリゲートは、操作の完了後にイベントをDeletedDelete処理して例外処理を実行するために呼び出されます。 この例では、 がスローされた場合 NorthwindDataException
、このデリゲートによって処理されます。
このコード例で使用する EmployeeLogic
中間層ビジネス オブジェクトの実装を調べるには、 を参照してください ObjectDataSourceStatusEventArgs。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Import namespace="Samples.AspNet.CS" %>
<%@ 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">
private void NorthwindEmployeeDeleting(object source, ObjectDataSourceMethodEventArgs e)
{
// The GridView passes the ID of the employee
// to be deleted. However, the buisiness object, EmployeeLogic,
// requires a NorthwindEmployee parameter, named "ne". Create
// it now and add it to the parameters collection.
IDictionary paramsFromPage = e.InputParameters;
if (paramsFromPage["EmpID"] != null) {
NorthwindEmployee ne
= new NorthwindEmployee( Int32.Parse(paramsFromPage["EmpID"].ToString()));
// Remove the old EmpID parameter.
paramsFromPage.Clear();
paramsFromPage.Add("ne", ne);
}
}
private void NorthwindEmployeeDeleted(object source, ObjectDataSourceStatusEventArgs e)
{
// Handle the Exception if it is a NorthwindDataException
if (e.Exception != null)
{
// Handle the specific exception type. The ObjectDataSource wraps
// any Exceptions in a TargetInvokationException wrapper, so
// check the InnerException property for expected Exception types.
if (e.Exception.InnerException is NorthwindDataException)
{
Label1.Text = e.Exception.InnerException.Message;
// Because the exception is handled, there is
// no reason to throw it.
e.ExceptionHandled = true;
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1"
autogeneratedeletebutton="true"
autogeneratecolumns="false"
datakeynames="EmpID">
<columns>
<asp:boundfield headertext="EmpID" datafield="EmpID" />
<asp:boundfield headertext="First Name" datafield="FirstName" />
<asp:boundfield headertext="Last Name" datafield="LastName" />
</columns>
</asp:gridview>
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
deletemethod="DeleteEmployee"
ondeleting="NorthwindEmployeeDeleting"
ondeleted="NorthwindEmployeeDeleted"
typename="Samples.AspNet.CS.EmployeeLogic">
<deleteparameters>
<asp:parameter name="EmpID" type="Int32" />
</deleteparameters>
</asp:objectdatasource>
<asp:label id="Label1" runat="server" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Import namespace="Samples.AspNet.VB" %>
<%@ 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">
' Called before a Delete operation.
Private Sub NorthwindEmployeeDeleting(ByVal source As Object, ByVal e As ObjectDataSourceMethodEventArgs)
' The GridView passes the ID of the employee
' to be deleted. However, the business object, EmployeeLogic,
' requires a NorthwindEmployee parameter, named "ne". Create
' it now and add it to the parameters collection.
Dim paramsFromPage As IDictionary = e.InputParameters
If Not paramsFromPage("EmpID") Is Nothing Then
Dim ne As New NorthwindEmployee(paramsFromPage("EmpID").ToString())
' Remove the old EmpID parameter.
paramsFromPage.Clear()
paramsFromPage.Add("ne", ne)
End If
End Sub ' NorthwindEmployeeDeleting
' Called after a Delete operation.
Private Sub NorthwindEmployeeDeleted(ByVal source As Object, ByVal e As ObjectDataSourceStatusEventArgs)
' Handle the Exception if it is a NorthwindDataException.
If Not e.Exception Is Nothing Then
' Handle the specific exception type. The ObjectDataSource wraps
' any Exceptions in a TargetInvokationException wrapper, so
' check the InnerException property for the expected Exception types.
If e.Exception.InnerException.GetType().Equals(GetType(NorthwindDataException)) Then
Label1.Text = e.Exception.InnerException.Message
' Because the exception is handled, there is
' no reason to throw it.
e.ExceptionHandled = True
End If
End If
End Sub ' NorthwindEmployeeDeleted
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - VB Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1"
autogeneratedeletebutton="true"
autogeneratecolumns="false"
datakeynames="EmpID">
<columns>
<asp:boundfield headertext="EmpID" datafield="EmpID" />
<asp:boundfield headertext="First Name" datafield="FirstName" />
<asp:boundfield headertext="Last Name" datafield="LastName" />
</columns>
</asp:gridview>
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
deletemethod="DeleteEmployee"
ondeleting="NorthwindEmployeeDeleting"
ondeleted="NorthwindEmployeeDeleted"
typename="Samples.AspNet.VB.EmployeeLogic">
<deleteparameters>
<asp:parameter name="EmpID" type="Int32" />
</deleteparameters>
</asp:objectdatasource>
<asp:label id="Label1" runat="server" />
</form>
</body>
</html>
注釈
プロパティによって DeleteMethod 識別されるメソッドは、インスタンス メソッドまたは static
(Shared
Visual Basic の場合は ) メソッドです。 インスタンス メソッドの場合、 プロパティで指定されたメソッドが呼び出されるたびにビジネス オブジェクトが作成され、 DeleteMethod 破棄されます。 プロパティで指定されたメソッドが ObjectCreated 呼び出される前に、ビジネス オブジェクトを操作するイベントを DeleteMethod 処理できます。 プロパティで指定されたメソッドが ObjectDisposing 呼び出された後に発生するイベントを DeleteMethod 処理することもできます。 メソッドが static
(Shared
Visual Basic の場合) メソッドの場合、ビジネス オブジェクトは作成されません。これらのイベントは処理できません。
コントロールが操作するビジネス オブジェクトが ObjectDataSource 同じ名前 (メソッド オーバーロード) を持つ複数のメソッドまたは関数を実装している場合、データ ソース コントロールは、コレクション内 DeleteParameters のパラメーターを含む一連の条件に従って正しいメソッドを呼び出そうとします。 コレクション内のパラメーターが DeleteParameters メソッド シグネチャの DeleteMethod パラメーターと一致しない場合、データ ソースは例外をスローします。
プロパティの DeleteMethod 値はビュー ステートに格納されます。
詳細については、「DeleteMethod」を参照してください。
適用対象
こちらもご覧ください
.NET