ObjectDataSource.SelectMethod Eigenschap

Definitie

Hiermee haalt u de naam op van de methode of functie die door het ObjectDataSource besturingselement wordt aangeroepen om gegevens op te halen.

public:
 property System::String ^ SelectMethod { System::String ^ get(); void set(System::String ^ value); };
public string SelectMethod { get; set; }
member this.SelectMethod : string with get, set
Public Property SelectMethod As String

Waarde van eigenschap

Een tekenreeks die de naam vertegenwoordigt van de methode of functie die wordt ObjectDataSource gebruikt om gegevens op te halen. De standaardwaarde is een lege tekenreeks ("").

Voorbeelden

In het volgende codevoorbeeld ziet u hoe een GridView besturingselement gegevens kan weergeven met behulp van een ObjectDataSource besturingselement op een webpagina met webformulieren. Hiermee ObjectDataSource wordt een gedeeltelijk of volledig gekwalificeerde klassenaam geïdentificeerd met de TypeName eigenschap en een methode die wordt aangeroepen om gegevens op te halen met de SelectMethod eigenschap. Tijdens runtime wordt het object gemaakt en wordt de methode aangeroepen met behulp van weerspiegeling. Het GridView besturingselement inventariseert de IEnumerable verzameling die wordt geretourneerd door de methode die is opgegeven door de SelectMethod eigenschap en geeft de gegevens weer.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="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">
<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:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.CS.EmployeeLogic" />

    </form>
  </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ObjectDataSource - Visual Basic Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1" />

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

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

Opmerkingen

De opgegeven methode kan elke methodehandtekening hebben, maar er moet een van de typen worden geretourneerd die in de volgende tabel worden weergegeven, zodat het ObjectDataSource besturingselement deze kan aanroepen.

Terugbrengtype Action
IEnumerable De IEnumerable waarde wordt geretourneerd door de Select methode.
DataTable Er wordt een DataView gemaakt met behulp van de DataTable en geretourneerde Select methode.
DataView Een DataView wordt geretourneerd door de Select methode.
DataSet De eerste DataTable is DataSet geëxtraheerd en er wordt een DataView gemaakt en geretourneerd door de Select methode.
Object Het object wordt verpakt in een verzameling met één element IEnumerable en geretourneerd door de Select methode.

De SelectMethod eigenschap wordt gedelegeerd aan de SelectMethod eigenschap van het ObjectDataSourceView object dat is gekoppeld aan het ObjectDataSource besturingselement.

Wanneer u de ObjectDataSource klasse gebruikt om gegevens te verwijderen of bij te werken, moet u ervoor zorgen dat de parameternamen die zijn geconfigureerd voor het ObjectDataSource besturingselement in de DeleteParameters verzameling of UpdateParameters verzameling overeenkomen met de kolomnamen die worden geretourneerd door de selectiemethode.

Levensduur van object

De methode die wordt geïdentificeerd door de eigenschap SelectMethod kan een instantiemethode of een methode static (Shared in Visual Basic) zijn. Als het een instantiemethode is, wordt het bedrijfsobject gemaakt en vernietigd telkens wanneer de methode die is opgegeven door de SelectMethod eigenschap wordt aangeroepen. U kunt de ObjectCreated en ObjectCreating gebeurtenissen afhandelen om met het bedrijfsobject te werken voordat de methode die is opgegeven door de SelectMethod eigenschap wordt aangeroepen. U kunt ook de ObjectDisposing gebeurtenis afhandelen die wordt gegenereerd nadat de methode die is opgegeven door de SelectMethod eigenschap wordt aangeroepen. Als het bedrijfsobject de IDisposable interface implementeert, wordt de Dispose methode aangeroepen voordat het object wordt vernietigd. Als de methode is static (Shared in Visual Basic), wordt het bedrijfsobject nooit gemaakt en kunt u de gebeurtenissen ObjectCreated, ObjectCreating en ObjectDisposing niet verwerken.

Parameter samenvoegen

Parameters worden vanuit deze bronnen toegevoegd aan de SelectParameters verzameling:

  • Declaratief van het SelectParameters element.

  • Programmatisch van de Selecting methode.

Eerst worden de parameters die in het SelectParameters element worden vermeld, toegevoegd. Ten tweede worden parameters programmatisch toegevoegd en verwijderd in de Selecting gebeurtenis, die plaatsvinden voordat de Select methode wordt uitgevoerd. De methode wordt opgelost nadat de parameters zijn samengevoegd. Methodeomzetting wordt in de volgende sectie besproken.

Important

U moet een parameterwaarde valideren die u van de client ontvangt. De runtime vervangt simpelweg de parameterwaarde in de SelectMethod eigenschap.

Methodeomzetting

Wanneer de Select methode wordt aangeroepen, worden de gegevensvelden van het besturingselement voor gegevens, de parameters die declaratief in het SelectParameters element zijn gemaakt en de parameters die in de Selecting gebeurtenis-handler zijn toegevoegd, allemaal samengevoegd. (Zie de voorgaande sectie voor meer informatie.) Het ObjectDataSource besturingselement probeert vervolgens een methode te vinden die moet worden aangeroepen. Eerst wordt gezocht naar een of meer methoden met de naam die is opgegeven in de SelectMethod eigenschap. Als er geen overeenkomst wordt gevonden, wordt er een InvalidOperationException uitzondering gegenereerd. Als er een overeenkomst wordt gevonden, zoekt deze naar overeenkomende parameternamen. Stel dat een type dat door de eigenschap is opgegeven, twee methoden heeft met de TypeName naam SelectARecord. De SelectARecord ene heeft één parameter, IDen de andere SelectARecord heeft twee parameters, Name en Number. Als de SelectParameters verzameling slechts één parameter heeft met de naam ID, wordt de SelectARecord methode met alleen de ID parameter aangeroepen. Het type van de parameter wordt niet gecontroleerd bij het omzetten van de methoden. De volgorde van de parameters maakt niet uit.

Als de DataObjectTypeName eigenschap is ingesteld, wordt de methode op een andere manier omgezet. Er ObjectDataSource wordt gezocht naar een methode met de naam die is opgegeven in de SelectMethod eigenschap die één parameter gebruikt van het type dat is opgegeven in de DataObjectTypeName eigenschap. In dit geval maakt de naam van de parameter niet uit.

Van toepassing op

Zie ook