QueryStringParameter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wiąże wartość pola ciągu zapytania żądania HTTP z obiektem parametru.
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
- Dziedziczenie
Przykłady
W poniższym przykładzie pokazano, jak utworzyć QueryStringParameter obiekt do użycia jako filtr podczas wyświetlania danych w kontrolce GridView . Obiekt jest dodany QueryStringParameter do AccessDataSource kolekcji kontrolki FilterParameters . Obiekt parametru wiąże wartość pola ciągu zapytania o nazwie country
z jego FilterExpression ciągiem. Ponieważ dla parametru nie DefaultValue określono żadnej właściwości, jeśli żadne pole o nazwie country
nie zostanie przekazane z ciągiem zapytania, AccessDataSource kontrolka zgłasza NullReferenceException wyjątek. Jeśli pole o nazwie country
jest przekazywane, ale nie ma wartości, kontrolka GridView nie wyświetla żadnych danych.
<%@ 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>
W poniższym przykładzie pokazano, jak utworzyć QueryStringParameter obiekt do wyświetlania danych z bazy danych programu Access przy użyciu sparametryzowanego zapytania SQL. Obiekt AccessDataSource pobiera rekordy, które są następnie wyświetlane w kontrolce GridView . Kontrolka GridView jest również edytowalna i umożliwia użytkownikom aktualizowanie stanu zamówień w tabeli Zamówienia firmy Northwind Traders.
<%@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>
Uwagi
Za pomocą QueryStringParameter klasy można powiązać wartość pola przekazanego jako część ciągu zapytania żądania HTTP do parametru używanego w sparametryzowanym zapytaniu lub poleceniu. Pole jest pobierane z kolekcji QueryString .
Kontrolki, które wiążą dane z parametrem, mogą zgłaszać wyjątek, jeśli QueryStringParameter obiekt jest przywoływane, ale nie przekazano odpowiedniej pary nazwa/wartość ciągu zapytania. Podobnie mogą wyświetlać żadne dane, jeśli nazwa pola ciągu zapytania jest przekazywana bez odpowiedniej wartości. Aby uniknąć tych sytuacji, ustaw właściwość w DefaultValue odpowiednim miejscu.
Klasa QueryStringParameter udostępnia QueryStringField właściwość, która identyfikuje nazwę wartości ciągu zapytania do powiązania. Udostępnia również właściwości dziedziczone z Parameter klasy.
Ważne
Klasa QueryStringParameter nie weryfikuje przekazanej wartości. Udostępnia ona nieprzetworzone wartości. Można jednak zweryfikować wartość QueryStringParameter obiektu w kontrolce źródła danych. W tym celu obsłuż Selecting
zdarzenie , , Updating
Inserting
lub Deleting
kontrolki źródła danych i sprawdź wartość parametru w procedurze obsługi zdarzeń. Jeśli wartość parametru nie przejdzie testów weryfikacyjnych, możesz anulować operację danych, ustawiając Cancel właściwość skojarzonej CancelEventArgs klasy na true
.
Konstruktory
QueryStringParameter() |
Inicjuje nowe nienazwane wystąpienie QueryStringParameter klasy. |
QueryStringParameter(QueryStringParameter) |
Inicjuje nowe wystąpienie QueryStringParameter klasy przy użyciu wartości wystąpienia określonego |
QueryStringParameter(String, DbType, String) |
Inicjuje nowe nazwane wystąpienie QueryStringParameter klasy przy użyciu określonego pola ciągu zapytania i typu danych parametru. |
QueryStringParameter(String, String) |
Inicjuje nowe nazwane wystąpienie QueryStringParameter klasy przy użyciu określonego ciągu w celu zidentyfikowania pola ciągu zapytania, z którym ma być powiązane. |
QueryStringParameter(String, TypeCode, String) |
Inicjuje nowe nazwane i silnie typizowane wystąpienie QueryStringParameter klasy przy użyciu określonego ciągu w celu zidentyfikowania pola ciągu zapytania, z którym ma być powiązane. |
Właściwości
ConvertEmptyStringToNull |
Pobiera lub ustawia wartość wskazującą, Parameter czy wartość, którą obiekt jest powiązany, powinna zostać przekonwertowana na |
DbType |
Pobiera lub ustawia typ bazy danych parametru. (Odziedziczone po Parameter) |
DefaultValue |
Określa wartość domyślną parametru, jeśli wartość parametru jest powiązana z niezainicjowaną, gdy Evaluate(HttpContext, Control) metoda jest wywoływana. (Odziedziczone po Parameter) |
Direction |
Wskazuje, czy Parameter obiekt jest używany do powiązania wartości z kontrolką, czy kontrolki można użyć do zmiany wartości. (Odziedziczone po Parameter) |
IsTrackingViewState |
Pobiera wartość wskazującą, czy Parameter obiekt zapisuje zmiany w stanie widoku. (Odziedziczone po Parameter) |
Name |
Pobiera lub ustawia nazwę parametru. (Odziedziczone po Parameter) |
QueryStringField |
Pobiera lub ustawia nazwę pola ciągu zapytania powiązanego z parametrem. |
Size |
Pobiera lub ustawia rozmiar parametru. (Odziedziczone po Parameter) |
Type |
Pobiera lub ustawia typ parametru. (Odziedziczone po Parameter) |
ValidateInput |
Pobiera lub ustawia, czy wartość parametru ciągu zapytania jest weryfikowana, czy nie. |
ViewState |
Pobiera słownik informacji o stanie, który umożliwia zapisanie i przywrócenie stanu Parameter widoku obiektu na wielu żądaniach dla tej samej strony. (Odziedziczone po Parameter) |
Metody
Clone() |
Zwraca duplikat bieżącego QueryStringParameter wystąpienia. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Evaluate(HttpContext, Control) |
Aktualizuje i zwraca wartość QueryStringParameter obiektu. |
GetDatabaseType() |
DbType Pobiera wartość równoważną typowi CLR bieżącego Parameter wystąpienia. (Odziedziczone po Parameter) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
LoadViewState(Object) |
Przywraca wcześniej zapisany stan widoku źródła danych. (Odziedziczone po Parameter) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnParameterChanged() |
Wywołuje metodę OnParametersChanged(EventArgs) kolekcji ParameterCollection zawierającej Parameter obiekt. (Odziedziczone po Parameter) |
SaveViewState() |
Zapisuje zmiany w Parameter stanie widoku obiektu od czasu opublikowania strony z powrotem na serwerze. (Odziedziczone po Parameter) |
SetDirty() |
Oznacza obiekt tak Parameter , aby jego stan był rejestrowany w stanie widoku. (Odziedziczone po Parameter) |
ToString() |
Konwertuje wartość tego wystąpienia na jego równoważną reprezentację w postaci ciągu. (Odziedziczone po Parameter) |
TrackViewState() |
Parameter Powoduje, że obiekt śledzi zmiany w stanie widoku, dzięki czemu można je przechowywać w obiekcie kontrolki ViewState i utrwalać w żądaniach dla tej samej strony. (Odziedziczone po Parameter) |
Jawne implementacje interfejsu
ICloneable.Clone() |
Zwraca duplikat bieżącego Parameter wystąpienia. (Odziedziczone po Parameter) |
IStateManager.IsTrackingViewState |
Pobiera wartość wskazującą, czy Parameter obiekt zapisuje zmiany w stanie widoku. (Odziedziczone po Parameter) |
IStateManager.LoadViewState(Object) |
Przywraca wcześniej zapisany stan widoku źródła danych. (Odziedziczone po Parameter) |
IStateManager.SaveViewState() |
Zapisuje zmiany w Parameter stanie widoku obiektu od czasu opublikowania strony z powrotem na serwerze. (Odziedziczone po Parameter) |
IStateManager.TrackViewState() |
Parameter Powoduje, że obiekt śledzi zmiany w stanie widoku, dzięki czemu można je przechowywać w obiekcie kontrolki ViewState i utrwalać w żądaniach dla tej samej strony. (Odziedziczone po Parameter) |