Esporta (0) Stampa
Espandi tutto

Classe ObjectDataSourceEventArgs

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

Spazio dei nomi: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public class ObjectDataSourceEventArgs : EventArgs
public class ObjectDataSourceEventArgs extends EventArgs
public class ObjectDataSourceEventArgs extends EventArgs
Non applicabile.

La classe ObjectDataSourceEventArgs viene utilizzata nei metodi OnObjectCreating e OnObjectCreated per fornire accesso all'istanza dell'oggetto business prima dell'esecuzione di operazioni di dati che utilizzano il controllo ObjectDataSource e l'oggetto business. L'impostazione e l'accesso all'oggetto business vengono eseguiti tramite la proprietà ObjectInstance. Mediante l'aggiunta di un delegato del gestore eventi per gestire l'evento ObjectCreating, è possibile creare un'istanza dell'oggetto business con un codice personalizzato invece di eseguire la creazione dell'istanza tramite la classe ObjectDataSource. Questa procedura è utile quando si desidera un'istanza non predefinita dell'oggetto business o per chiamare un costruttore non predefinito per creare l'istanza; la classe ObjectDataSource chiama sempre il costruttore predefinito per creare un'istanza dell'oggetto business utilizzato. Inoltre, è possibile aggiungere un delegato del gestore eventi per gestire l'evento ObjectCreated, in modo da poter accedere a tutti i membri esposti pubblicamente dell'oggetto business per eseguire ulteriori inizializzazioni o altre operazioni.

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

Il controllo ObjectDataSource espone numerosi eventi che è possibile gestire per utilizzare l'oggetto business sottostante in diversi momenti del relativo ciclo di vita. Nella tabella riportata di seguito sono elencati gli eventi e le classi EventArgs associate, nonché i delegati del gestore eventi.

Evento

EventArgs

EventHandler

ObjectCreating.

Si verifica immediatamente prima che venga creata l'istanza dell'oggetto business.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

ObjectCreated.

Si verifica immediatamente dopo che è stata creata l'istanza dell'oggetto business.

ObjectDataSourceEventArgs

ObjectDataSourceObjectEventHandler

Selecting.

Si verifica prima del recupero dei dati.

ObjectDataSourceSelectingEventArgs

ObjectDataSourceSelectingEventHandler

Inserting, Updating e Deleting.

Si verificano prima dell'esecuzione di un'operazione di inserimento, di aggiornamento o di eliminazione.

ObjectDataSourceMethodEventArgs

ObjectDataSourceMethodEventHandler

Selected.

Si verifica dopo il recupero dei dati.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

Inserted, Updated, Deleted.

Si verificano dopo il completamento dell'operazione di inserimento, di aggiornamento o di eliminazione.

ObjectDataSourceStatusEventArgs

ObjectDataSourceStatusEventHandler

ObjectDisposing.

Si verifica dopo l'eliminazione di un oggetto business.

ObjectDataSourceDisposingEventArgs

ObjectDataSourceDisposingEventHandler

In questa sezione sono inclusi due esempi di codice. Nell'esempio di codice riportato di seguito viene illustrato come utilizzare un controllo ObjectDataSource con un oggetto business e un controllo GridView per recuperare e visualizzare informazioni. Nel secondo esempio di codice viene fornito l'oggetto business di base di esempio utilizzato dal primo esempio di codice.

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare un controllo ObjectDataSource con un oggetto business e un controllo GridView per recuperare e visualizzare informazioni. In questo esempio, come in molti scenari reali, non è possibile né appropriato utilizzare un'istanza predefinita dell'oggetto business con il controllo ObjectDataSource. In questo esempio, la classe ObjectDataSource non può completare la chiamata al costruttore predefinito poiché questo genererà un'eccezione. In alcuni casi, è possibile che il costruttore predefinito sia protetto, mentre in altri è possibile che non inizializzi l'oggetto business nello stato desiderato. Indipendentemente dal motivo, l'utente può creare un'istanza dell'oggetto business e impostarla sulla proprietà ObjectInstance dell'oggetto ObjectDataSourceEventArgs passato al gestore. Si tratta delI'istanza dell'oggetto business che sarà utilizzata dalla classe ObjectDataSource per eseguire le proprie funzioni.

<%@ 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>

Nell'esempio di codice riportato di seguito viene illustrato l'oggetto business di base di esempio utilizzato dal precedente esempio di codice.

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;
    }
    
  }

}

System.Object
   System.EventArgs
    System.Web.UI.WebControls.ObjectDataSourceEventArgs

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 è supportato in Windows Vista, Microsoft Windows XP SP2 e Windows Server 2003 SP1.

.NET Framework

Supportato in:

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft