Parameter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
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) | |
ConvertTypeCodeToDbType(TypeCode) | |
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. |