QueryStringParameter Třída

Definice

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
QueryStringParameter

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 Selectingzpracujete událost , Updating, Insertingnebo 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 original .

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 null , pokud je Empty.

(Zděděno od Parameter)
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)

Aktualizace 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)

Platí pro

Viz také