ObjectDataSourceView.DeleteMethod Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja annak a metódusnak vagy függvénynek a nevét, amelyet az objektum meghív az ObjectDataSourceView adatok törléséhez.
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
Tulajdonság értéke
Egy sztring, amely annak a metódusnak vagy függvénynek a nevét jelöli, amelyet az ObjectDataSourceView adatok törléséhez használ. Az alapértelmezett érték egy üres sztring ("").
Példák
Az alábbi példakód bemutatja, hogyan használható egy ObjectDataSource vezérlő egy üzleti objektummal és egy vezérlővel GridView az adatok törlésére. A GridView kezdetben az összes alkalmazott egy halmazát jeleníti meg a tulajdonság által SelectMethod megadott módszerrel az adatok az objektumból EmployeeLogic való lekéréséhez. Mivel a AutoGenerateDeleteButton tulajdonság be van állítva true, a vezérlő automatikusan megjeleníti a GridViewDelete gombot.
Ha a Törlés gombra kattint, a Delete művelet a tulajdonság által megadott módszerrel és a DeleteMethodDeleteParameters gyűjteményben megadott paraméterekkel történik. Ebben a kód példában néhány előfeldolgozási és utófeldolgozási lépést is végrehajtunk. A NorthwindEmployeeDeleting rendszer meghívja a meghatalmazottat az Deleting esemény kezelésére a Delete művelet végrehajtása előtt, a NorthwindEmployeeDeleted delegált pedig a művelet befejezése után az Deleted esemény kezeléséreDelete, kivételkezeléshez. Ebben a példában, ha egy NorthwindDataException dobás történik, a meghatalmazott kezeli.
A példakód által használt középszintű üzleti objektum implementációjának EmployeeLogic vizsgálatához tekintse meg a következőt 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>
Megjegyzések
A DeleteMethod tulajdonság által azonosított metódus lehet példánymetódus vagy static (Shared Visual Basic) metódus. Ha példánymetódusról van szó, az üzleti objektum minden alkalommal létrejön és megsemmisül, amikor meghívja a DeleteMethod tulajdonság által megadott metódust. A tulajdonság által ObjectCreated megadott metódus meghívása előtt kezelheti az DeleteMethod eseményt az üzleti objektummal való együttműködéshez. A tulajdonság által ObjectDisposing megadott metódus meghívása után létrehozott eseményt is kezelhetiDeleteMethod. Ha a metódus egy static (Shared Visual Basic) metódus, az üzleti objektum soha nem jön létre, és nem tudja kezelni ezeket az eseményeket.
Ha a vezérlő által használt üzleti objektum ObjectDataSource egynél több metódust vagy függvényt valósít meg ugyanazzal a névvel (a metódus túlterhelt), az adatforrás-vezérlő megkísérli meghívni a megfelelőt egy feltételkészlet szerint, beleértve a DeleteParameters gyűjtemény paramétereit is. Ha a gyűjtemény paraméterei nem egyeznek meg DeleteParameters a DeleteMethod metódus-aláírás paramétereinek, az adatforrás kivételt jelez.
A tulajdonság értéke DeleteMethod megtekintési állapotban van tárolva.
További információért lásd DeleteMethod.