QueryStringParameter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří vazbu hodnoty pole řetězce dotazu požadavku HTTP na objekt 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
- Dědičnost
Příklady
Následující příklad ukazuje, jak vytvořit objekt, který QueryStringParameter se použije jako filtr při zobrazení dat v ovládacím prvku GridView . Objekt přidáte QueryStringParameter do AccessDataSource kolekce ovládacího prvku FilterParameters . Objekt parametru vytvoří vazbu hodnoty pole řetězce dotazu s názvem country
na jeho FilterExpression řetězec. Vzhledem k tomu, že pro parametr není zadána žádná DefaultValue vlastnost, pokud s řetězcem dotazu není předáno žádné pole s názvem country
, AccessDataSource ovládací prvek vyvolá NullReferenceException výjimku. Pokud je pole s názvem country
předáno, ale nemá žádnou hodnotu, GridView ovládací prvek nezobrazí žádná data.
<%@ 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>
Následující příklad ukazuje, jak vytvořit QueryStringParameter objekt pro zobrazení dat z databáze Accessu pomocí parametrizovaného dotazu SQL. Objekt AccessDataSource načte záznamy, které se pak zobrazí v ovládacím prvku GridView . Ovládací GridView prvek je také upravitelný a umožňuje uživatelům aktualizovat stav objednávek v tabulce 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>
Poznámky
Pomocí třídy můžete svázat QueryStringParameter hodnotu pole, které je předáno jako součást řetězce dotazu požadavku HTTP s parametrem, který se používá v parametrizovaném dotazu nebo příkazu. Pole se načte z QueryString kolekce.
Ovládací prvky, které sváže data s parametrem, mohou vyvolat výjimku, pokud QueryStringParameter je odkazován na objekt, ale nepředá se žádný odpovídající pár název řetězce dotazu a hodnota. Podobně můžou zobrazit žádná data, pokud se název pole řetězce dotazu předá bez odpovídající hodnoty. Pokud se chcete těmto situacím vyhnout, nastavte tam, kde je DefaultValue to vhodné, vlastnost .
Třída QueryStringParameter poskytuje QueryStringField vlastnost , která identifikuje název hodnoty řetězce dotazu, na který se má navázat. Poskytuje také vlastnosti, které jsou zděděné z Parameter třídy .
Důležité
Třída QueryStringParameter neověřuje předanou hodnotu; poskytuje nezpracovanou hodnotu. Můžete ale ověřit hodnotu objektu QueryStringParameter v ovládacím prvku zdroje dat. Provedete to tak, že Selecting
zpracujete událost , Updating
, Inserting
nebo Deleting
ovládacího prvku zdroje dat a zkontrolujete hodnotu parametru v obslužné rutině události. Pokud hodnota parametru neprojde ověřovacími testy, můžete operaci dat zrušit nastavením Cancel vlastnosti přidružené CancelEventArgs třídy na true
.
Konstruktory
QueryStringParameter() |
Inicializuje novou nepojmenovanou instanci QueryStringParameter třídy . |
QueryStringParameter(QueryStringParameter) |
Inicializuje novou instanci QueryStringParameter třídy pomocí hodnot instance, která je určena parametrem |
QueryStringParameter(String, DbType, String) |
Inicializuje novou pojmenovanou instanci QueryStringParameter třídy pomocí zadaného pole řetězce dotazu a datového typu parametru . |
QueryStringParameter(String, String) |
Inicializuje novou pojmenovanou instanci třídy pomocí zadaného QueryStringParameter řetězce k identifikaci pole řetězce dotazu k vytvoření vazby. |
QueryStringParameter(String, TypeCode, String) |
Inicializuje novou pojmenovanou instanci třídy se silnými typy pomocí zadaného QueryStringParameter řetězce k identifikaci pole řetězce dotazu, které se má svázat. |
Vlastnosti
ConvertEmptyStringToNull |
Získá nebo nastaví hodnotu označující, zda má být hodnota, se kterou Parameter je objekt vázán, převedena na |
DbType |
Získá nebo nastaví typ databáze parametru. (Zděděno od Parameter) |
DefaultValue |
Určuje výchozí hodnotu parametru, pokud by hodnota, kterou je parametr vázán být neinicializován při Evaluate(HttpContext, Control) zavolání metody. (Zděděno od Parameter) |
Direction |
Určuje, zda se Parameter objekt používá k vytvoření vazby hodnoty na ovládací prvek nebo zda lze ovládací prvek použít ke změně hodnoty. (Zděděno od Parameter) |
IsTrackingViewState |
Získá hodnotu označující, zda Parameter objekt ukládá změny do stavu zobrazení. (Zděděno od Parameter) |
Name |
Získá nebo nastaví název parametru. (Zděděno od Parameter) |
QueryStringField |
Získá nebo nastaví název pole řetězce dotazu, který parametr váže. |
Size |
Získá nebo nastaví velikost parametru. (Zděděno od Parameter) |
Type |
Získá nebo nastaví typ parametru. (Zděděno od Parameter) |
ValidateInput |
Získá nebo nastaví, zda hodnota parametru řetězce dotazu je ověřována nebo ne. |
ViewState |
Získá slovník informací o stavu, který umožňuje uložit a obnovit stav zobrazení objektu Parameter v rámci více požadavků na stejnou stránku. (Zděděno od Parameter) |
Metody
Clone() |
Vrátí duplikát aktuální QueryStringParameter instance. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Evaluate(HttpContext, Control) |
Aktualizuje a vrátí hodnotu objektu QueryStringParameter . |
GetDatabaseType() |
DbType Získá hodnotu, která je ekvivalentní typu CLR aktuální Parameter instance. (Zděděno od Parameter) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
LoadViewState(Object) |
Obnoví dříve uložený stav zobrazení zdroje dat. (Zděděno od Parameter) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnParameterChanged() |
Volá metodu OnParametersChanged(EventArgs)ParameterCollection kolekce, která obsahuje Parameter objekt . (Zděděno od Parameter) |
SaveViewState() |
Uloží změny stavu zobrazení objektu Parameter od okamžiku, kdy byla stránka odeslána zpět na server. (Zděděno od Parameter) |
SetDirty() |
Označí Parameter objekt tak, aby se jeho stav zaznamenal ve stavu zobrazení. (Zděděno od Parameter) |
ToString() |
Převede hodnotu této instance na její odpovídající řetězcovou reprezentaci. (Zděděno od Parameter) |
TrackViewState() |
Způsobí, že Parameter objekt sleduje změny stavu zobrazení, aby mohly být uloženy v objektu ovládacího prvku ViewState a trvale zachovány v požadavcích na stejnou stránku. (Zděděno od Parameter) |
Explicitní implementace rozhraní
ICloneable.Clone() |
Vrátí duplikát aktuální Parameter instance. (Zděděno od Parameter) |
IStateManager.IsTrackingViewState |
Získá hodnotu označující, zda Parameter objekt ukládá změny do stavu zobrazení. (Zděděno od Parameter) |
IStateManager.LoadViewState(Object) |
Obnoví dříve uložený stav zobrazení zdroje dat. (Zděděno od Parameter) |
IStateManager.SaveViewState() |
Uloží změny stavu zobrazení objektu Parameter od okamžiku, kdy byla stránka odeslána zpět na server. (Zděděno od Parameter) |
IStateManager.TrackViewState() |
Způsobí, že Parameter objekt sleduje změny stavu zobrazení, aby mohly být uloženy v objektu ovládacího prvku ViewState a trvale zachovány v požadavcích na stejnou stránku. (Zděděno od Parameter) |