QueryStringParameter Класс

Определение

Привязывает значение поля строки запроса HTTP к объекту параметра.Binds the value of an HTTP request query-string field to a parameter object.

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
Наследование
QueryStringParameter

Примеры

В следующем примере показано, как создать QueryStringParameter объект для использования в качестве фильтра при отображении данных в GridView элементе управления.The following example shows how to create a QueryStringParameter object to use as a filter when you display data in a GridView control. Вы добавляете QueryStringParameter объект в AccessDataSource коллекцию элемента управления FilterParameters .You add the QueryStringParameter object to the AccessDataSource control's FilterParameters collection. Объект параметра привязывает значение поля строки запроса с именем country к FilterExpression строке.The parameter object binds the value of the query-string field named country to its FilterExpression string. Поскольку DefaultValue для параметра не указано свойство, если в country строку запроса не передано поле с именем, AccessDataSource элемент управления создает NullReferenceException исключение.Because no DefaultValue property is specified for the parameter, if no field named country is passed with the query string, the AccessDataSource control throws a NullReferenceException exception. Если поле с именем country передано, но не имеет значения, GridView элемент управления не отображает данные.If a field named country is passed but has no value, the GridView control displays no 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>

В следующем примере показано, как создать QueryStringParameter объект для отображения данных из базы данных Access с помощью параметризованного SQL-запроса.The following example shows how to create a QueryStringParameter object to display data from an Access database by using a parameterized SQL query. AccessDataSourceОбъект извлекает записи, которые затем отображаются в GridView элементе управления.The AccessDataSource object retrieves records that are then displayed in a GridView control. GridViewЭлемент управления также можно редактировать, и пользователи смогут обновлять состояние заказов в таблице «Заказы» базы данных «Борей».The GridView control is also editable, and lets users update the status of orders in the Northwind Traders Orders table.

<%@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>

Комментарии

Класс можно использовать QueryStringParameter для привязки значения поля, которое передается как часть строки запроса HTTP-запроса к параметру, который используется в параметризованном запросе или команде.You can use the QueryStringParameter class to bind the value of a field that is passed as part of an HTTP request query string to a parameter that is used in a parameterized query or command. Поле извлекается из QueryString коллекции.The field is retrieved from the QueryString collection.

Элементы управления, которые привязывают данные к параметру, могут вызывать исключение QueryStringParameter , если на объект имеется ссылка, но соответствующая пара "имя-значение" строки запроса не передается.Controls that bind data to the parameter might throw an exception if a QueryStringParameter object is referenced, but no corresponding query-string name/value pair is passed. Аналогичным образом они могут не отображать данные, если имя поля строки запроса передается без соответствующего значения.Similarly, they might display no data if the query-string field name is passed without a corresponding value. Чтобы избежать этих ситуаций, DefaultValue при необходимости задайте свойство.To avoid these situations, set the DefaultValue property where appropriate.

QueryStringParameterКласс предоставляет QueryStringField свойство, которое определяет имя значения строки запроса для привязки.The QueryStringParameter class provides the QueryStringField property, which identifies the name of the query string value to bind to. Он также предоставляет свойства, унаследованные от Parameter класса.It also provides the properties that are inherited from the Parameter class.

Важно!

QueryStringParameterКласс не проверяет передаваемое значение, он предоставляет необработанное значение.The QueryStringParameter class does not validate the value that is passed; it provides the raw value. Однако можно проверить значение QueryStringParameter объекта в элементе управления источника данных.However, you can validate the value of a QueryStringParameter object in a data source control. Для этого обработайте Selecting событие, Updating , Inserting или Deleting элемента управления источниками данных и проверьте значение параметра в обработчике событий.To do so, handle the Selecting, Updating, Inserting, or Deleting event of the data source control and check the parameter value in the event handler. Если значение параметра не проходит проверочные тесты, можно отменить операцию с данными, задав Cancel для свойства связанного CancelEventArgs класса значение true .If the value of the parameter does not pass the validation tests, you can cancel the data operation by setting the Cancel property of the associated CancelEventArgs class to true.

Конструкторы

QueryStringParameter()

Инициализирует новый безымянный экземпляр класса QueryStringParameter.Initializes a new unnamed instance of the QueryStringParameter class.

QueryStringParameter(QueryStringParameter)

Инициализирует новый экземпляр класса QueryStringParameter значениями экземпляра, заданного параметром original.Initializes a new instance of the QueryStringParameter class, using the values of the instance that is specified by the original parameter.

QueryStringParameter(String, DbType, String)

Инициализирует новый именованный экземпляр класса QueryStringParameter, используя указанные поле строки запроса и тип данных параметра.Initializes a new named instance of the QueryStringParameter class, using the specified query-string field and the data type of the parameter.

QueryStringParameter(String, String)

Инициализирует новый именованный экземпляр класса QueryStringParameter, используя заданную строку для обозначения поля строки запроса, к которому выполняется привязка.Initializes a new named instance of the QueryStringParameter class, using the specified string to identify which query-string field to bind to.

QueryStringParameter(String, TypeCode, String)

Инициализирует новый именованный и строго типизированный экземпляр класса QueryStringParameter, используя заданную строку для обозначения поля строки запроса, к которому выполняется привязка.Initializes a new named and strongly typed instance of the QueryStringParameter class, using the specified string to identify which query-string field to bind to.

Свойства

ConvertEmptyStringToNull

Возвращает или задает значение, указывающее на необходимость преобразования значения, к которому привязан объект Parameter в null, если его значение равно Empty.Gets or sets a value indicating whether the value that the Parameter object is bound to should be converted to null if it is Empty.

(Унаследовано от Parameter)
DbType

Возвращает или задает тип базы данных параметра.Gets or sets the database type of the parameter.

(Унаследовано от Parameter)
DefaultValue

Задает значение по умолчанию для параметра, если значение, к которому привязан параметр, должно быть инициализировано при вызове метода Evaluate(HttpContext, Control).Specifies a default value for the parameter, should the value that the parameter is bound to be uninitialized when the Evaluate(HttpContext, Control) method is called.

(Унаследовано от Parameter)
Direction

Указывает, используется ли объект Parameter для привязки значения к элементу управления или же элемент управления можно использовать для изменения значения.Indicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value.

(Унаследовано от Parameter)
IsTrackingViewState

Получает значение, указывающее сохраняет ли объект Parameter изменения в данных о состоянии представления.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Унаследовано от Parameter)
Name

Возвращает или задает имя параметра.Gets or sets the name of the parameter.

(Унаследовано от Parameter)
QueryStringField

Возвращает или задает имя поля строки запроса, к которому привязывается параметр.Gets or sets the name of the query-string field that the parameter binds to.

Size

Возвращает или задает размер параметра.Gets or sets the size of the parameter.

(Унаследовано от Parameter)
Type

Возвращает или задает тип параметра.Gets or sets the type of the parameter.

(Унаследовано от Parameter)
ValidateInput

Получает или задает значение, указывающее, проверяется ли значение параметра строки запроса.Gets or sets whether the value of the query string parameter is being validated or not.

ViewState

Возвращает словарь сведений о состоянии, позволяющих сохранять и восстанавливать состояние представления объекта Parameter при нескольких запросах одной и той же страницы.Gets a dictionary of state information that allows you to save and restore the view state of a Parameter object across multiple requests for the same page.

(Унаследовано от Parameter)

Методы

Clone()

Возвращает дубликат текущего экземпляра QueryStringParameter.Returns a duplicate of the current QueryStringParameter instance.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Evaluate(HttpContext, Control)

Обновляет и возвращает значение объекта QueryStringParameter.Updates and returns the value of the QueryStringParameter object.

GetDatabaseType()

Возвращает значение DbType, эквивалентное типу среды CLR текущего экземпляра Parameter.Gets the DbType value that is equivalent to the CLR type of the current Parameter instance.

(Унаследовано от Parameter)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
LoadViewState(Object)

Восстанавливает сохраненное раннее состояние представления источника данных.Restores the data source view's previously saved view state.

(Унаследовано от Parameter)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnParameterChanged()

Вызывает метод OnParametersChanged(EventArgs) коллекции ParameterCollection, содержащей объект Parameter.Calls the OnParametersChanged(EventArgs) method of the ParameterCollection collection that contains the Parameter object.

(Унаследовано от Parameter)
SaveViewState()

Сохраняет изменения в данных о состоянии представления объекта Parameter после обратной передачи страницы на сервер.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Унаследовано от Parameter)
SetDirty()

Обозначает объект Parameter как подлежащий записи его состояния в данные о состоянии представления.Marks the Parameter object so its state will be recorded in view state.

(Унаследовано от Parameter)
ToString()

Преобразует значение этого экземпляра в эквивалентное ему строковое представление.Converts the value of this instance to its equivalent string representation.

(Унаследовано от Parameter)
TrackViewState()

Инициирует отслеживание объектом Parameter изменений в состоянии его представления, благодаря чему их можно сохранить для этого объекта ViewState элемента управления и хранить их для всех запросов одной и той же страницы.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

(Унаследовано от Parameter)

Явные реализации интерфейса

ICloneable.Clone()

Возвращает дубликат текущего экземпляра Parameter.Returns a duplicate of the current Parameter instance.

(Унаследовано от Parameter)
IStateManager.IsTrackingViewState

Получает значение, указывающее сохраняет ли объект Parameter изменения в данных о состоянии представления.Gets a value indicating whether the Parameter object is saving changes to its view state.

(Унаследовано от Parameter)
IStateManager.LoadViewState(Object)

Восстанавливает сохраненное раннее состояние представления источника данных.Restores the data source view's previously saved view state.

(Унаследовано от Parameter)
IStateManager.SaveViewState()

Сохраняет изменения в данных о состоянии представления объекта Parameter после обратной передачи страницы на сервер.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

(Унаследовано от Parameter)
IStateManager.TrackViewState()

Инициирует отслеживание объектом Parameter изменений в состоянии его представления, благодаря чему их можно сохранить для этого объекта ViewState элемента управления и хранить их для всех запросов одной и той же страницы.Causes the Parameter object to track changes to its view state so they can be stored in the control's ViewState object and persisted across requests for the same page.

(Унаследовано от Parameter)

Применяется к

См. также раздел