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.Provides a mechanism that data source controls use to bind to application variables, user identities and choices, and other data. Sert de classe de base pour tous les types de paramètres ASP.NET.Serves as the base class for all ASP.NET parameter types.

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.The following example shows how to use the selected value of a DropDownList control in the Where clause of a SQL query. L’exemple utilise la ControlParameter classe, qui dérive de la ControlParameter classe.The example uses the ControlParameter class, which derives from the ControlParameter class.

L' SelectCommand élément définit la requête avec un paramètre nommé «@Title», où la valeur DropDownList1 de doit être insérée.The SelectCommand element defines the query with a parameter named "@Title" where the value from DropDownList1 should go. L' ControlParameter élément spécifie que l'@Titleespace réservé «» sera remplacé par la valeur DropDownList1 de SelectedValue la propriété du contrôle.The ControlParameter element specifies that the "@Title" placeholder will be replaced by the value of the SelectedValue property of the DropDownList1 control. L' ControlParameter élément est ajouté à la SelectParameters collection du SqlDataSource contrôle.The ControlParameter element is added to the SelectParameters collection of the SqlDataSource control.

<!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 d’un balisage.The following example is like the previous one, but uses code instead of markup. Lorsque la page se charge pour la première fois DropDownList , le contrôle n’a aucune valeur sélectionnée DefaultValue et la propriété Parameter de l’objet est utilisée.When the page loads the first time, the DropDownList control has no selected value, and the DefaultValue property of the Parameter object is used.

<%@ 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 illustre la classe code-behind de la page dans l’exemple précédent.The following code shows the code-behind class for the page in the previous example.

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 nouveau type de paramètre qui peut être utilisé par les contrôles de source de données et d’autres contrôles dans les scénarios de liaison de données.The following code example demonstrates how to extend the Parameter class to create a new parameter type that can be used by data source controls and other controls in data-binding scenarios. Un contrôle de source de données peut StaticParameter utiliser un paramètre pour établir une liaison à la valeur d’un objet, en général une chaîne, déclarée sur une page de Web Forms.A data source control can use a StaticParameter parameter to bind to the value of any object, typically a string, declared on a Web Forms page.

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.The Parameter class represents a parameter in a parameterized SQL query, a filtering expression, or a business object method call that an ASP.NET data source control uses to select, filter, or modify data. Les objets Parameter sont contenus dans un objet ParameterCollection.Parameter objects are contained in a ParameterCollection object. Parameterles objets sont évalués au moment de l’exécution, pour lier les valeurs des variables qu’ils représentent à toute méthode utilisée par un contrôle de source de données pour interagir avec les données.Parameter objects are evaluated at run time, to bind the values of the variables they represent to whatever method is used by a data source control to interact with data.

Utilisez les classes qui dérivent de Parameter avec les contrôles liés à la source de données et aux données pour créer des applications de données Web.Use classes that derive from Parameter with data source and data-bound controls to build Web-based data applications. Ces classes de paramètres sont utilisées par les contrôles de source de données pour lier des genres spécifiques de valeurs trouvées dans des 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.These parameter classes are used by data source controls to bind specific kinds of values found in Web applications to placeholders in SQL query strings, business object method parameters, and more. Le tableau suivant répertorie les types de paramètres inclus dans ASP.NET.The following table lists parameter types that are included in ASP.NET.

ControlParameter Lie toute propriété publique d’un contrôle serveur Web.Binds any public property of a Web server control.
FormParameter Lie un champ de formulaire.Binds a form field.
SessionParameter Lie un champ d’état de session.Binds a session-state field.
RouteParameter Lie un paramètre d’URL de routage.Binds a route URL parameter.
CookieParameter Lie un champ de cookie.Binds a cookie field.
QueryStringParameter Lie un paramètre de chaîne de requête.Binds a query-string parameter.
ProfileParameter Lie un champ de profil.Binds a profile field.

Étendez la Parameter classe de base lorsque vous souhaitez implémenter vos propres types de paramètres personnalisés.Extend the base Parameter class when you want to implement your own custom parameter types.

Parameterles objets sont très simples : ils ont Name une propriété Type et une propriété, peuvent être représentés de manière déclarative et peuvent suivre l’état entre plusieurs requêtes http.Parameter objects are very simple: they have a Name and a Type property, can be represented declaratively, and can track state across multiple HTTP requests. Tous les paramètres prennent DefaultValue en charge une propriété, dans le cas où un paramètre est lié à une valeur, mais la null valeur est évaluée au moment de l’exécution.All parameters support a DefaultValue property, for cases when a parameter is bound to a value, but the value evaluates to null at run time.

Lors de l’utilisation d' Parameter une collection d’objets avec un contrôle de source de données, leur ordre dans la collection importe peu.When using a collection of Parameter objects with a data source control, their order in the collection might matter. Pour plus d’informations sur la façon dont les paramètres sont utilisés, consultez utilisation de paramètres avec le contrôle SqlDataSource et utilisation de paramètres avec le contrôle ObjectDataSource.For more information on how parameters are used, see Using Parameters with the SqlDataSource Control and Using Parameters with the ObjectDataSource Control.

Constructeurs

Parameter()

Initialise une nouvelle instance par défaut de la classe Parameter.Initializes a new default instance of the Parameter class.

Parameter(Parameter)

Initialise une nouvelle instance de la classe Parameter avec les valeurs de l'instance originale spécifiée.Initializes a new instance of the Parameter class with the values of the original, specified instance.

Parameter(String)

Initialise une nouvelle instance de la classe Parameter avec le nom spécifié.Initializes a new instance of the Parameter class, using the specified name.

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.Initializes a new instance of the Parameter class, using the specified name and database type.

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.Initializes a new instance of the Parameter class, using the specified name, the specified database type, and the specified value for its DefaultValue property.

Parameter(String, TypeCode)

Initialise une nouvelle instance de la classe Parameter avec le nom et le type spécifiés.Initializes a new instance of the Parameter class, using the specified name and type.

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.Initializes a new instance of the Parameter class, using the specified name, the specified type, and the specified string for its DefaultValue property.

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.Gets or sets a value indicating whether the value that the Parameter object is bound to should be converted to null if it is Empty.

DbType

Obtient ou définit le type de base de données du paramètre.Gets or sets the database type of the parameter.

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.Specifies a default value for the parameter, should the value that the parameter is bound to be uninitialized when the Evaluate(HttpContext, Control) method is called.

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.Indicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value.

IsTrackingViewState

Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage.Gets a value indicating whether the Parameter object is saving changes to its view state.

Name

Obtient ou définit le nom du paramètre.Gets or sets the name of the parameter.

Size

Obtient ou définit la taille du paramètre.Gets or sets the size of the parameter.

Type

Obtient ou définit le type du paramètre.Gets or sets the type of the parameter.

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.Gets a dictionary of state information that allows you to save and restore the view state of a Parameter object across multiple requests for the same page.

Méthodes

Clone()

Retourne un doublon de l'instance de Parameter actuelle.Returns a duplicate of the current Parameter instance.

ConvertDbTypeToTypeCode(DbType)

Convertit une valeur DbType en valeur TypeCode équivalente.Converts a DbType value to an equivalent TypeCode value.

ConvertTypeCodeToDbType(TypeCode)

Convertit une valeur TypeCode en valeur DbType équivalente.Converts a TypeCode value to an equivalent DbType value.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

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

Met à jour et retourne la valeur de l'objet Parameter.Updates and returns the value of the Parameter object.

GetDatabaseType()

Obtient la valeur DbType qui est équivalente au type CLR de l'instance Parameter actuelle.Gets the DbType value that is equivalent to the CLR type of the current Parameter instance.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

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

Restaure l'état d'affichage enregistré précédemment pour la vue de source de données.Restores the data source view's previously saved view state.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnParameterChanged()

Appelle la méthode OnParametersChanged(EventArgs) de la collection ParameterCollection qui contient l'objet Parameter.Calls the OnParametersChanged(EventArgs) method of the ParameterCollection collection that contains the Parameter object.

SaveViewState()

Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

SetDirty()

Marque l'objet Parameter afin que son état soit enregistré dans l'état d'affichage.Marks the Parameter object so its state will be recorded in view state.

ToString()

Convertit la valeur de cette instance en sa représentation sous forme de chaîne équivalente.Converts the value of this instance to its equivalent string representation.

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.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

Implémentations d’interfaces explicites

ICloneable.Clone()

Retourne un doublon de l'instance de Parameter actuelle.Returns a duplicate of the current Parameter instance.

IStateManager.IsTrackingViewState

Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage.Gets a value indicating whether the Parameter object is saving changes to its view state.

IStateManager.LoadViewState(Object)

Restaure l'état d'affichage enregistré précédemment pour la vue de source de données.Restores the data source view's previously saved view state.

IStateManager.SaveViewState()

Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

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.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

S’applique à

Voir aussi