Condividi tramite


ObjectDataSourceEventArgs Classe

Definizione

Fornisce i dati per gli ObjectCreating eventi e ObjectCreated del ObjectDataSource controllo .

public ref class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs : EventArgs
type ObjectDataSourceEventArgs = class
    inherit EventArgs
Public Class ObjectDataSourceEventArgs
Inherits EventArgs
Ereditarietà
ObjectDataSourceEventArgs

Esempio

Questa sezione contiene due esempi di codice. Il primo esempio di codice illustra come usare un ObjectDataSource controllo con un oggetto business e un GridView controllo per recuperare e visualizzare informazioni. Il secondo esempio di codice fornisce l'oggetto business di base di esempio usato dal primo esempio di codice.

Nell'esempio di codice seguente viene illustrato come utilizzare un ObjectDataSource controllo con un oggetto business e un GridView controllo per recuperare e visualizzare informazioni. In questo esempio, come in molti scenari reali, potrebbe non essere possibile né appropriato usare un'istanza predefinita dell'oggetto business con il ObjectDataSource controllo . In questo esempio, non ObjectDataSource è possibile chiamare correttamente il costruttore senza parametri perché genererà un'eccezione. In alcuni casi, il costruttore senza parametri potrebbe essere protetto e in altri potrebbe non inizializzare l'oggetto business in uno stato desiderato. Indipendentemente dal motivo, è possibile creare un'istanza dell'oggetto business manualmente e impostare l'istanza sulla ObjectInstance proprietà dell'oggetto ObjectDataSourceEventArgs passato al gestore. Si tratta dell'istanza dell'oggetto ObjectDataSource business che verrà utilizzata da per eseguire il lavoro.

<%@ 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 NorthwindLogicCreating(object sender, ObjectDataSourceEventArgs e)
{
    // Create an instance of the business object using a non-default constructor.
    EmployeeLogic eLogic = new EmployeeLogic("Not created by the default constructor!");
    
    // Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
    e.ObjectInstance = eLogic;
}

</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">
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          onobjectcreating="NorthwindLogicCreating"
          typename="Samples.AspNet.CS.EmployeeLogic" >
        </asp:objectdatasource>

    </form>
  </body>
</html>
<%@ 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">
Private Sub NorthwindLogicCreating(sender As Object, e As ObjectDataSourceEventArgs)

    ' Create an instance of the business object using a non-default constructor.
    Dim eLogic As EmployeeLogic = New EmployeeLogic("Not created by the default constructor!")
    
    ' Set the ObjectInstance property so that the ObjectDataSource uses the created instance.
    e.ObjectInstance = eLogic
    
End Sub ' NorthwindLogicCreating

</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">
        </asp:gridview>

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          onobjectcreating="NorthwindLogicCreating"
          typename="Samples.AspNet.VB.EmployeeLogic" >
        </asp:objectdatasource>

    </form>
  </body>
</html>

Nell'esempio di codice seguente viene illustrato l'oggetto business di base di esempio usato dall'esempio di codice precedente.

namespace Samples.AspNet.CS {

using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;

  public class EmployeeLogic {

    public EmployeeLogic() {  
        throw new NotSupportedException("Initialize data.");
    }
    
    public EmployeeLogic(string data) {
        _data = data;
    }

    private string _data;
    
    // Returns a collection of NorthwindEmployee objects.
    public ICollection GetAllEmployees () {
      ArrayList al = new ArrayList();      
      al.Add(_data);        
      return al;
    }
  }
}
Imports System.Collections
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB
  Public Class EmployeeLogic
    
    
    Public Sub New() 
        Throw New NotSupportedException("Initialize data.")
    
    End Sub
    
    
    Public Sub New(ByVal data As String) 
        _data = data
    
    End Sub
    
    Private _data As String
    
    
    ' Returns a collection of NorthwindEmployee objects.
    Public Function GetAllEmployees() As ICollection 
        Dim al As New ArrayList()
        al.Add(_data)
        Return al
    
    End Function 'GetAllEmployees
  End Class
End Namespace ' Samples.AspNet.VB

Commenti

La ObjectDataSourceEventArgs classe viene utilizzata nei OnObjectCreating metodi e OnObjectCreated per fornire l'accesso all'istanza dell'oggetto business prima che vengano eseguite operazioni sui dati che utilizzano il controllo e l'oggetto ObjectDataSource business. L'oggetto business viene impostato e accessibile tramite la ObjectInstance proprietà . Aggiungendo un delegato del gestore eventi per gestire l'evento ObjectCreating , è possibile creare un'istanza dell'oggetto business nel codice personalizzato anziché eseguire ObjectDataSource l'istanza. Ciò è utile quando si desidera un'istanza non predefinita dell'oggetto business o chiamare un costruttore non senza parametri per creare l'istanza; chiama ObjectDataSource sempre il costruttore senza parametri per creare un'istanza dell'oggetto business con cui funziona. È anche possibile aggiungere un delegato del gestore eventi per gestire l'evento ObjectCreated , che consente di accedere a qualsiasi membro esposto pubblicamente dell'oggetto business per eseguire qualsiasi ulteriore inizializzazione o lavoro.

I OnObjectCreating metodi e OnObjectCreated non vengono chiamati dal controllo , se il ObjectDataSource metodo dell'oggetto business che esegue le operazioni sui dati è static.

Il ObjectDataSource controllo espone molti eventi che è possibile gestire per lavorare con l'oggetto business sottostante in vari momenti del ciclo di vita. Nella tabella seguente sono elencati gli eventi e le classi associate EventArgs e i delegati del gestore eventi.

Event EventArgs EventHandler
ObjectCreating.

Si verifica immediatamente prima della creazione dell'istanza dell'oggetto business.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
ObjectCreated.

Si verifica immediatamente dopo la creazione dell'istanza dell'oggetto business.
ObjectDataSourceEventArgs ObjectDataSourceObjectEventHandler
Selecting.

Si verifica prima del recupero dei dati.
ObjectDataSourceSelectingEventArgs ObjectDataSourceSelectingEventHandler
Inserting, Updatinge Deleting.

Si verifica prima dell'esecuzione di un'operazione di inserimento, aggiornamento o eliminazione.
ObjectDataSourceMethodEventArgs ObjectDataSourceMethodEventHandler
Selected.

Si verifica dopo il recupero dei dati.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
Inserted, Updated, Deleted.

Si verifica dopo il completamento dell'operazione di inserimento, aggiornamento o eliminazione.
ObjectDataSourceStatusEventArgs ObjectDataSourceStatusEventHandler
ObjectDisposing.

Si verifica prima che un oggetto business venga eliminato definitivamente.
ObjectDataSourceDisposingEventArgs ObjectDataSourceDisposingEventHandler

Costruttori

Nome Descrizione
ObjectDataSourceEventArgs(Object)

Inizializza una nuova istanza della ObjectDataSourceEventArgs classe utilizzando l'oggetto specificato.

Proprietà

Nome Descrizione
ObjectInstance

Ottiene o imposta un oggetto che rappresenta l'oggetto business con cui il ObjectDataSource controllo esegue operazioni sui dati.

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche