Parameter Classe

Définition

Fournit un mécanisme que les contrôles de source de données utilisent pour créer une liaison à des variables d’application, à des choix et identités utilisateur, ainsi qu’à d’autres données. Sert de classe de base pour tous les types de paramètres ASP.NET.

public ref class Parameter : ICloneable, System::Web::UI::IStateManager
public class Parameter : ICloneable, System.Web.UI.IStateManager
type Parameter = class
    interface ICloneable
    interface IStateManager
Public Class Parameter
Implements ICloneable, IStateManager
Héritage
Parameter
Dérivé
Implémente

Exemples

L’exemple suivant montre comment utiliser la valeur sélectionnée d’un DropDownList contrôle dans la clause Where d’une requête SQL. L’exemple utilise la ControlParameter classe , qui dérive de la ControlParameter classe .

L’élément SelectCommand définit la requête avec un paramètre nommé « @Title » à partir duquel la valeur doit DropDownList1 aller. L’élément ControlParameter spécifie que l’espace réservé « @Title » sera remplacé par la valeur de la SelectedValue propriété du DropDownList1 contrôle. L’élément ControlParameter est ajouté à la SelectParameters collection du SqlDataSource contrôle .

<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

    </form>
  </body>
</html>
<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

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

L’exemple suivant est semblable au précédent, mais utilise du code au lieu du balisage. Lorsque la page se charge la première fois, le DropDownList contrôle n’a aucune valeur sélectionnée et la DefaultValue propriété de l’objet Parameter est utilisée.

<%@ Page Language="C#" CodeFile="param1acs.aspx.cs" Inherits="param1acs_aspx" %>
<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="param1avb.aspx.vb" Inherits="param1avb_aspx" %>
<!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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>

Le code suivant montre la classe code-behind pour la page dans l’exemple précédent.

public partial class param1acs_aspx : System.Web.UI.Page 
{
    private void Page_Load(object sender, System.EventArgs e)
    {
        SqlDataSource sqlSource = new SqlDataSource(
          ConfigurationManager.ConnectionStrings["MyNorthwind"].ConnectionString,
          "SELECT FirstName, LastName FROM Employees WHERE Country = @country;");

        ControlParameter country = new ControlParameter();
        country.Name = "country";
        country.Type = TypeCode.String;
        country.ControlID = "DropDownList1";
        country.PropertyName = "SelectedValue";

        // If the DefaultValue is not set, the DataGrid does not
        // display anything on the first page load. This is because
        // on the first page load, the DropDownList has no
        // selected item, and the ControlParameter evaluates to
        // String.Empty.
        country.DefaultValue = "USA";

        sqlSource.SelectParameters.Add(country);

        // Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource);

        DataGrid1.DataSource = sqlSource;
        DataGrid1.DataBind();
    }
}
Partial Class param1avb_aspx
   Inherits System.Web.UI.Page
    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim sqlSource As SqlDataSource

        sqlSource = New SqlDataSource(ConfigurationManager.ConnectionStrings("MyNorthwind").ConnectionString, "SELECT FirstName, LastName FROM Employees WHERE Country = @country;")
        Dim country As New ControlParameter()
        country.Name = "country"
        country.Type = TypeCode.String
        country.ControlID = "DropDownList1"
        country.PropertyName = "SelectedValue"
        ' If the DefaultValue is not set, the DataGrid does not
        ' display anything on the first page load. This is because
        ' on the first page load, the DropDownList has no
        ' selected item, and the ControlParameter evaluates to
        ' String.Empty.
        country.DefaultValue = "USA"
        sqlSource.SelectParameters.Add(country)

        ' Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource)


        DataGrid1.DataSource = sqlSource
        DataGrid1.DataBind()

    End Sub
End Class

L’exemple de code suivant montre comment étendre la Parameter classe pour créer un type de paramètre qui peut être utilisé par des contrôles de source de données et d’autres contrôles dans des scénarios de liaison de données. Un contrôle de source de données peut utiliser un paramètre pour établir une StaticParameter liaison à la valeur de n’importe quel objet, généralement une chaîne, déclarée sur une page Web Forms.

namespace Samples.AspNet {

  using System;
  using System.ComponentModel;
  using System.Security.Permissions;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;

  [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
  public class StaticParameter : Parameter {

    public StaticParameter() {
    }
    // The StaticParameter(string, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string) constructor to initialize the Name property.
    public StaticParameter(string name, object value) : base(name) {
      DataValue = value;
    }
    // The StaticParameter(string, TypeCode, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string, TypeCode) constructor to initialize the Name and
    // Type properties.
    public StaticParameter(string name, TypeCode type, object value) : base(name, type) {
      DataValue = value;
    }
    // The StaticParameter copy constructor is provided to ensure that
    // the state contained in the DataValue property is copied to new
    // instances of the class.
    protected StaticParameter(StaticParameter original) : base(original) {
      DataValue = original.DataValue;
    }

    // The Clone method is overridden to call the
    // StaticParameter copy constructor, so that the data in
    // the DataValue property is correctly transferred to the
    // new instance of the StaticParameter.
    protected override Parameter Clone() {
      return new StaticParameter(this);
    }
    // The DataValue can be any arbitrary object and is stored in ViewState.
    public object DataValue {
      get {
        return ViewState["Value"];
      }
      set {
        ViewState["Value"] = value;
      }
    }
    // The Value property is a type safe convenience property
    // used when the StaticParameter represents string data.
    // It gets the string value of the DataValue property, and
    // sets the DataValue property directly.
    public string Value {
      get {
        object o = DataValue;
        if (o == null || !(o is string))
          return String.Empty;
        return (string)o;
      }
      set {
        DataValue = value;
        OnParameterChanged();
      }
    }

    // The Evaluate method is overridden to return the
    // DataValue property instead of the DefaultValue.
    protected override object Evaluate(HttpContext context, Control control) {

      if (context.Request == null)
          return null;

      return DataValue;
    }
  }
}
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet

<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class StaticParameter
   Inherits Parameter


   Public Sub New()
   End Sub

  ' The StaticParameter(string, object) constructor
  ' initializes the DataValue property and calls the
  ' Parameter(string) constructor to initialize the Name property.
   Public Sub New(name As String, value As Object)
      MyBase.New(name)
      DataValue = value
   End Sub

   ' The StaticParameter(string, TypeCode, object) constructor
   ' initializes the DataValue property and calls the
   ' Parameter(string, TypeCode) constructor to initialize the Name and
   ' Type properties.
   Public Sub New(name As String, type As TypeCode, value As Object)
      MyBase.New(name, type)
      DataValue = value
   End Sub
   ' The StaticParameter copy constructor is provided to ensure that
   ' the state contained in the DataValue property is copied to new
   ' instances of the class.
   Protected Sub New(original As StaticParameter)
      MyBase.New(original)
      DataValue = original.DataValue
   End Sub

   ' The Clone method is overridden to call the
   ' StaticParameter copy constructor, so that the data in
   ' the DataValue property is correctly transferred to the
   ' new instance of the StaticParameter.
   Protected Overrides Function Clone() As Parameter
      Return New StaticParameter(Me)
   End Function

   ' The DataValue can be any arbitrary object and is stored in ViewState.
   Public Property DataValue() As Object
      Get
         Return ViewState("Value")
      End Get
      Set
         ViewState("Value") = value
      End Set
   End Property
   ' The Value property is a type safe convenience property
   ' used when the StaticParameter represents string data.
   ' It gets the string value of the DataValue property, and
   ' sets the DataValue property directly.
   Public Property Value() As String
      Get
         Dim o As Object = DataValue
         If o Is Nothing OrElse Not TypeOf o Is String Then
            Return String.Empty
         End If
         Return CStr(o)
      End Get
      Set
         DataValue = value
         OnParameterChanged()
      End Set
   End Property
   ' The Evaluate method is overridden to return the
   ' DataValue property instead of the DefaultValue.
   Protected Overrides Function Evaluate(context As HttpContext, control As Control) As Object
      If context Is Nothing Then
          Return Nothing
      Else
          Return DataValue
      End If
   End Function
End Class

End Namespace ' Samples.AspNet

Remarques

La Parameter classe représente un paramètre dans une requête SQL paramétrable, une expression de filtrage ou un appel de méthode d’objet métier qu’un contrôle de source de données ASP.NET utilise pour sélectionner, filtrer ou modifier des données. Les objets Parameter sont contenus dans un objet ParameterCollection. Parameter Les objets sont évalués au moment de l’exécution, pour lier les valeurs des variables qu’ils représentent à la méthode utilisée par un contrôle de source de données pour interagir avec les données.

Utilisez des classes qui dérivent de Parameter avec des contrôles de source de données et liés aux données pour créer des applications de données web. Ces classes de paramètres sont utilisées par les contrôles de source de données pour lier des types spécifiques de valeurs trouvées dans les applications web à des espaces réservés dans des chaînes de requête SQL, des paramètres de méthode d’objet métier, etc. Le tableau suivant répertorie les types de paramètres inclus dans ASP.NET.

ControlParameter Lie toute propriété publique d’un contrôle serveur Web.
FormParameter Lie un champ de formulaire.
SessionParameter Lie un champ d’état de session.
RouteParameter Lie un paramètre d’URL d’itinéraire.
CookieParameter Lie un champ de cookie.
QueryStringParameter Lie un paramètre de chaîne de requête.
ProfileParameter Lie un champ de profil.

Étendez la classe de base Parameter lorsque vous souhaitez implémenter vos propres types de paramètres personnalisés.

Parameter Les objets sont très simples : ils ont une Name propriété et une Type propriété, peuvent être représentés de manière déclarative et peuvent suivre l’état sur plusieurs requêtes HTTP. Tous les paramètres prennent en charge une DefaultValue propriété, dans les cas où un paramètre est lié à une valeur, mais que la valeur est évaluée à au moment de l’exécution null .

Lors de l’utilisation d’une collection d’objets Parameter avec un contrôle de source de données, leur ordre dans la collection peut être important. Pour plus d’informations sur l’utilisation des paramètres, consultez Utilisation de paramètres avec le contrôle SqlDataSource et Utilisation de paramètres avec le contrôle ObjectDataSource.

Constructeurs

Parameter()

Initialise une nouvelle instance par défaut de la classe Parameter.

Parameter(Parameter)

Initialise une nouvelle instance de la classe Parameter avec les valeurs de l'instance originale spécifiée.

Parameter(String)

Initialise une nouvelle instance de la classe Parameter avec le nom spécifié.

Parameter(String, DbType)

Initialise une nouvelle instance de la classe Parameter à l'aide du nom et du type de base de données spécifiés.

Parameter(String, DbType, String)

Initialise une nouvelle instance de la classe Parameter avec le nom, le type de base de données et la valeur spécifiés pour sa propriété DefaultValue.

Parameter(String, TypeCode)

Initialise une nouvelle instance de la classe Parameter avec le nom et le type spécifiés.

Parameter(String, TypeCode, String)

Initialise une nouvelle instance de la classe Parameter, avec le nom, le type et la chaîne spécifiés pour sa propriété DefaultValue.

Propriétés

ConvertEmptyStringToNull

Obtient ou définit une valeur indiquant si la valeur à laquelle l'objet Parameter est lié doit être convertie en null si elle est Empty.

DbType

Obtient ou définit le type de base de données du paramètre.

DefaultValue

Spécifie une valeur par défaut pour le paramètre, à condition que la valeur à laquelle le paramètre est lié à ne soit pas initialisée lorsque la méthode Evaluate(HttpContext, Control) est appelée.

Direction

Indique si l'objet Parameter est utilisé pour lier une valeur à un contrôle ou si le contrôle peut être utilisé pour modifier la valeur.

IsTrackingViewState

Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage.

Name

Obtient ou définit le nom du paramètre.

Size

Obtient ou définit la taille du paramètre.

Type

Obtient ou définit le type du paramètre.

ViewState

Obtient un dictionnaire d'informations d'état qui vous permet d'enregistrer et de restaurer l'état d'affichage d'un objet Parameter entre plusieurs demandes de la même page.

Méthodes

Clone()

Retourne un doublon de l'instance de Parameter actuelle.

ConvertDbTypeToTypeCode(DbType)

Convertit une valeur DbType en valeur TypeCode équivalente.

ConvertTypeCodeToDbType(TypeCode)

Convertit une valeur TypeCode en valeur DbType équivalente.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Evaluate(HttpContext, Control)

Met à jour et retourne la valeur de l'objet Parameter.

GetDatabaseType()

Obtient la valeur DbType qui est équivalente au type CLR de l'instance Parameter actuelle.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
LoadViewState(Object)

Restaure l'état d'affichage enregistré précédemment pour la vue de source de données.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnParameterChanged()

Appelle la méthode OnParametersChanged(EventArgs) de la collection ParameterCollection qui contient l'objet Parameter.

SaveViewState()

Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur.

SetDirty()

Marque l'objet Parameter afin que son état soit enregistré dans l'état d'affichage.

ToString()

Convertit la valeur de cette instance en sa représentation sous forme de chaîne équivalente.

TrackViewState()

Ainsi, l'objet Parameter effectue le suivi des modifications de son état d'affichage afin qu'elles puissent être stockées dans l'objet ViewState du contrôle et être persistantes entre les demandes de la même page.

Implémentations d’interfaces explicites

ICloneable.Clone()

Retourne un doublon de l'instance de Parameter actuelle.

IStateManager.IsTrackingViewState

Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage.

IStateManager.LoadViewState(Object)

Restaure l'état d'affichage enregistré précédemment pour la vue de source de données.

IStateManager.SaveViewState()

Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur.

IStateManager.TrackViewState()

Ainsi, l'objet Parameter effectue le suivi des modifications de son état d'affichage afin qu'elles puissent être stockées dans l'objet ViewState du contrôle et être persistantes entre les demandes de la même page.

S’applique à

Voir aussi