QueryStringParameter 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.
Lie la valeur d’un champ de chaîne de requête HTTP à un objet de paramètre.
public ref class QueryStringParameter : System::Web::UI::WebControls::Parameter
public class QueryStringParameter : System.Web.UI.WebControls.Parameter
type QueryStringParameter = class
inherit Parameter
Public Class QueryStringParameter
Inherits Parameter
- Héritage
Exemples
L’exemple suivant montre comment créer un QueryStringParameter objet à utiliser comme filtre lorsque vous affichez des données dans un GridView contrôle. Vous ajoutez l’objet QueryStringParameter à la AccessDataSource collection du FilterParameters contrôle. L’objet de paramètre lie la valeur du champ query-string nommé country
à sa FilterExpression chaîne. Étant donné qu’aucune propriété n’est DefaultValue spécifiée pour le paramètre, si aucun champ nommé country
n’est passé avec la chaîne de requête, le AccessDataSource contrôle lève une NullReferenceException exception. Si un champ nommé country
est passé mais n’a aucune valeur, le GridView contrôle n’affiche aucune donnée.
<%@ 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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<!-- Use a Query String with country=USA -->
<asp:gridview
id ="GridView1"
runat="server"
datasourceid="MyAccessDataSource" />
<!-- Security Note: The AccessDataSource uses a QueryStringParameter,
Security Note: which does not perform validation of input from the client. -->
<asp:accessdatasource
id="MyAccessDataSource"
runat="server"
datafile="Northwind.mdb"
selectcommand="SELECT EmployeeID, LastName, Address, PostalCode, Country FROM Employees"
filterexpression="Country = '{0}'">
<filterparameters>
<asp:querystringparameter name="country" type="String" querystringfield="country" />
</filterparameters>
</asp:accessdatasource>
</form>
</body>
</html>
<%@ 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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<!-- Use a Query String with country=USA -->
<asp:gridview
id ="GridView1"
runat="server"
datasourceid="MyAccessDataSource" />
<!-- Security Note: The AccessDataSource uses a QueryStringParameter,
Security Note: which does not perform validation of input from the client. -->
<asp:accessdatasource
id="MyAccessDataSource"
runat="server"
datafile="Northwind.mdb"
selectcommand="SELECT EmployeeID, LastName, Address, PostalCode, Country FROM Employees"
filterexpression="Country = '{0}'">
<filterparameters>
<asp:querystringparameter name="country" type="String" querystringfield="country" />
</filterparameters>
</asp:accessdatasource>
</form>
</body>
</html>
L’exemple suivant montre comment créer un QueryStringParameter objet pour afficher des données à partir d’une base de données Access à l’aide d’une requête SQL paramétrable. L’objet AccessDataSource récupère les enregistrements qui sont ensuite affichés dans un GridView contrôle . Le GridView contrôle est également modifiable et permet aux utilisateurs de mettre à jour l’état des commandes dans la table Northwind Traders Orders.
<%@Page Language="C#" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<!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 UpdateRecords(Object source, EventArgs e)
{
// This method is an example of batch updating using a
// data source control. The method iterates through the rows
// of the GridView, extracts each CheckBox from the row and, if
// the CheckBox is checked, updates data by calling the Update
// method of the data source control, adding required parameters
// to the UpdateParameters collection.
CheckBox cb;
foreach(GridViewRow row in this.GridView1.Rows) {
cb = (CheckBox) row.Cells[0].Controls[1];
if(cb.Checked) {
string oid = (string) row.Cells[1].Text;
MyAccessDataSource.UpdateParameters.Add(new Parameter("date",TypeCode.DateTime,DateTime.Now.ToString()));
MyAccessDataSource.UpdateParameters.Add(new Parameter("orderid",TypeCode.String,oid));
MyAccessDataSource.Update();
MyAccessDataSource.UpdateParameters.Clear();
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Security Note: The SqlDataSource uses a QueryStringParameter,
Security Note: which does not perform validation of input from the client.
Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->
<asp:SqlDataSource
id="MyAccessDataSource"
runat="server"
ProviderName="<%$ ConnectionStrings:MyPasswordProtectedAccess.providerName%>"
ConnectionString="<%$ ConnectionStrings:MyPasswordProtectedAccess%>"
SelectCommand="SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM Orders WHERE EmployeeID=?"
UpdateCommand="UPDATE Orders SET ShippedDate=? WHERE OrderID = ?">
<SelectParameters>
<asp:QueryStringParameter Name="empId" QueryStringField="empId" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView
id ="GridView1"
runat="server"
DataSourceID="MyAccessDataSource"
AllowPaging="True"
PageSize="10"
AutoGenerateColumns="False">
<columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:CheckBox runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Order" DataField="OrderID" />
<asp:BoundField HeaderText="Order Date" DataField="OrderDate" />
<asp:BoundField HeaderText="Required Date" DataField="RequiredDate" />
<asp:BoundField HeaderText="Shipped Date" DataField="ShippedDate" />
</columns>
</asp:GridView>
<asp:Button
id="Button1"
runat="server"
Text="Update the Selected Records As Shipped"
OnClick="UpdateRecords" />
<asp:Label id="Label1" runat="server" />
</form>
</body>
</html>
<%@Page Language="VB" %>
<%@Import Namespace="System.Data" %>
<%@Import Namespace="System.Data.Common" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub UpdateRecords(source As Object, e As EventArgs)
' This method is an example of batch updating using a
' data source control. The method iterates through the rows
' of the GridView, extracts each CheckBox from the row and, if
' the CheckBox is checked, updates data by calling the Update
' method of the data source control, adding required parameters
' to the UpdateParameters collection.
Dim cb As CheckBox
Dim row As GridViewRow
For Each row In GridView1.Rows
cb = CType(row.Cells(0).Controls(1), CheckBox)
If cb.Checked Then
Dim oid As String
oid = CType(row.Cells(1).Text, String)
Dim param1 As New Parameter("date", TypeCode.DateTime, DateTime.Now.ToString())
MyAccessDataSource.UpdateParameters.Add(param1)
Dim param2 As New Parameter("orderid", TypeCode.String, oid)
MyAccessDataSource.UpdateParameters.Add(param2)
MyAccessDataSource.Update()
MyAccessDataSource.UpdateParameters.Clear()
End If
Next
End Sub ' UpdateRecords
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Security Note: The SqlDataSource uses a QueryStringParameter,
Security Note: which does not perform validation of input from the client.
Security Note: To validate the value of the QueryStringParameter, handle the Selecting event. -->
<asp:SqlDataSource
id="MyAccessDataSource"
runat="server"
ProviderName="<%$ ConnectionStrings:MyPasswordProtectedAccess.providerName%>"
ConnectionString="<%$ ConnectionStrings:MyPasswordProtectedAccess%>"
SelectCommand="SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM Orders WHERE EmployeeID=?"
UpdateCommand="UPDATE Orders SET ShippedDate=? WHERE OrderID = ?">
<SelectParameters>
<asp:QueryStringParameter Name="empId" QueryStringField="empId" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView
id ="GridView1"
runat="server"
DataSourceID="MyAccessDataSource"
AllowPaging="True"
PageSize="10"
AutoGenerateColumns="False">
<columns>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:CheckBox runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Order" DataField="OrderID" />
<asp:BoundField HeaderText="Order Date" DataField="OrderDate" />
<asp:BoundField HeaderText="Required Date" DataField="RequiredDate" />
<asp:BoundField HeaderText="Shipped Date" DataField="ShippedDate" />
</columns>
</asp:GridView>
<asp:Button
id="Button1"
runat="server"
Text="Update the Selected Records As Shipped"
OnClick="UpdateRecords" />
<asp:Label id="Label1" runat="server" />
</form>
</body>
</html>
Remarques
Vous pouvez utiliser la QueryStringParameter classe pour lier la valeur d’un champ passé dans le cadre d’une chaîne de requête HTTP à un paramètre utilisé dans une requête ou une commande paramétrable. Le champ est récupéré à partir de la QueryString collection.
Les contrôles qui lient des données au paramètre peuvent lever une exception si un QueryStringParameter objet est référencé, mais qu’aucune paire nom-chaîne de requête/valeur correspondante n’est passée. De même, ils peuvent ne pas afficher de données si le nom du champ de chaîne de requête est passé sans valeur correspondante. Pour éviter ces situations, définissez la propriété le DefaultValue cas échéant.
La QueryStringParameter classe fournit la QueryStringField propriété , qui identifie le nom de la valeur de chaîne de requête à lier. Il fournit également les propriétés héritées de la Parameter classe .
Important
La QueryStringParameter classe ne valide pas la valeur qui est passée ; elle fournit la valeur brute. Toutefois, vous pouvez valider la valeur d’un QueryStringParameter objet dans un contrôle de source de données. Pour ce faire, gérez l’événement Selecting
, Updating
, Inserting
ou Deleting
du contrôle de source de données et vérifiez la valeur du paramètre dans le gestionnaire d’événements. Si la valeur du paramètre ne passe pas les tests de validation, vous pouvez annuler l’opération de données en affectant à la Cancel propriété de la classe associée CancelEventArgs la valeur true
.
Constructeurs
QueryStringParameter() |
Initialise une nouvelle instance sans nom de la classe QueryStringParameter. |
QueryStringParameter(QueryStringParameter) |
Initialise une nouvelle instance de la classe QueryStringParameter en utilisant les valeurs de l'instance spécifiée par le paramètre |
QueryStringParameter(String, DbType, String) |
Initialise une nouvelle instance nommée de la classe QueryStringParameter, à l'aide du champ de chaîne de requête spécifié et du type de données du paramètre. |
QueryStringParameter(String, String) |
Initialise une nouvelle instance nommée de la classe QueryStringParameter, à l'aide de la chaîne spécifiée pour identifier le champ de chaîne de requête à lier. |
QueryStringParameter(String, TypeCode, String) |
Initialise une nouvelle instance nommée et fortement typée de la classe QueryStringParameter, à l'aide de la chaîne spécifiée pour identifier le champ de chaîne de requête à lier. |
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. (Hérité de 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. (Hérité de Parameter) |
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. (Hérité de Parameter) |
IsTrackingViewState |
Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage. (Hérité de Parameter) |
Name |
Obtient ou définit le nom du paramètre. (Hérité de Parameter) |
QueryStringField |
Obtient ou définit le nom du champ de chaîne de requête auquel le paramètre est lié. |
Size |
Obtient ou définit la taille du paramètre. (Hérité de Parameter) |
Type |
Obtient ou définit le type du paramètre. (Hérité de Parameter) |
ValidateInput |
Obtient ou définit une valeur indiquant si la valeur du paramètre de chaîne de requête a été validée ou pas. |
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. (Hérité de Parameter) |
Méthodes
Clone() |
Retourne un doublon de l'instance de QueryStringParameter actuelle. |
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 QueryStringParameter. |
GetDatabaseType() |
Obtient la valeur DbType qui est équivalente au type CLR de l'instance Parameter actuelle. (Hérité de Parameter) |
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. (Hérité de Parameter) |
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. (Hérité de Parameter) |
SaveViewState() |
Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur. (Hérité de Parameter) |
SetDirty() |
Marque l'objet Parameter afin que son état soit enregistré dans l'état d'affichage. (Hérité de Parameter) |
ToString() |
Convertit la valeur de cette instance en sa représentation sous forme de chaîne équivalente. (Hérité de Parameter) |
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. (Hérité de Parameter) |
Implémentations d’interfaces explicites
ICloneable.Clone() |
Retourne un doublon de l'instance de Parameter actuelle. (Hérité de Parameter) |
IStateManager.IsTrackingViewState |
Obtient une valeur indiquant si l'objet Parameter enregistre les modifications apportées à son état d'affichage. (Hérité de Parameter) |
IStateManager.LoadViewState(Object) |
Restaure l'état d'affichage enregistré précédemment pour la vue de source de données. (Hérité de Parameter) |
IStateManager.SaveViewState() |
Enregistre les modifications apportées à l'état d'affichage de l'objet Parameter depuis la publication de la page sur le serveur. (Hérité de Parameter) |
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. (Hérité de Parameter) |