Parameter Klasa

Definicja

Zapewnia mechanizm używany przez formanty źródła danych do powiązania ze zmiennymi aplikacji, tożsamościami użytkowników i opcjami oraz innymi danymi.Provides a mechanism that data source controls use to bind to application variables, user identities and choices, and other data. Służy jako klasa bazowa dla wszystkich typów parametrów ASP.NET.Serves as the base class for all ASP.NET parameter types.

public ref class Parameter : ICloneable, System::Web::UI::IStateManager
public class Parameter : ICloneable, System.Web.UI.IStateManager
type Parameter = class
    interface ICloneable
    interface IStateManager
Public Class Parameter
Implements ICloneable, IStateManager
Dziedziczenie
Parameter
Pochodne
Implementuje

Przykłady

Poniższy przykład pokazuje, jak używać wybranej wartości kontrolki DropDownList w klauzuli inhere zapytania SQL.The following example shows how to use the selected value of a DropDownList control in the Where clause of a SQL query. W przykładzie zastosowano klasę ControlParameter, która pochodzi od klasy ControlParameter.The example uses the ControlParameter class, which derives from the ControlParameter class.

Element SelectCommand definiuje zapytanie z parametrem o nazwie "@Title", gdzie należy do wartości DropDownList1.The SelectCommand element defines the query with a parameter named "@Title" where the value from DropDownList1 should go. ControlParameter element określa, że symbol zastępczy "@Title" zostanie zastąpiony przez wartość właściwości SelectedValue kontrolki DropDownList1.The ControlParameter element specifies that the "@Title" placeholder will be replaced by the value of the SelectedValue property of the DropDownList1 control. Element ControlParameter jest dodawany do kolekcji SelectParameters kontrolki SqlDataSource.The ControlParameter element is added to the SelectParameters collection of the SqlDataSource control.

<!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" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

    </form>
  </body>
</html>
<!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" runat="server">

      <p><asp:dropdownlist
          id="DropDownList1"
          runat="server"
          autopostback="True">
          <asp:listitem selected="True">Sales Representative</asp:listitem>
          <asp:listitem>Sales Manager</asp:listitem>
          <asp:listitem>Vice President, Sales</asp:listitem>
      </asp:dropdownlist></p>

      <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT LastName FROM Employees WHERE Title = @Title">
          <selectparameters>
              <asp:controlparameter name="Title" controlid="DropDownList1" propertyname="SelectedValue"/>
          </selectparameters>
      </asp:sqldatasource>

      <p><asp:listbox
          id="ListBox1"
          runat="server"
          datasourceid="SqlDataSource1"
          datatextfield="LastName">
      </asp:listbox></p>

    </form>
  </body>
</html>

Poniższy przykład przypomina poprzedni, ale używa kodu zamiast znacznika.The following example is like the previous one, but uses code instead of markup. Gdy strona jest ładowana po raz pierwszy, formant DropDownList nie ma zaznaczonej wartości, a właściwość DefaultValue obiektu Parameter jest używana.When the page loads the first time, the DropDownList control has no selected value, and the DefaultValue property of the Parameter object is used.

<%@ Page Language="C#" CodeFile="param1acs.aspx.cs" Inherits="param1acs_aspx" %>
<!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" runat="server">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="param1avb.aspx.vb" Inherits="param1avb_aspx" %>
<!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" runat="server">
    <div>
        <asp:DropDownList
          runat="server"
          AutoPostBack="True"
          id="DropDownList1">
            <asp:ListItem Value="USA">USA</asp:ListItem>
            <asp:ListItem Value="UK">UK</asp:ListItem>
         </asp:DropDownList>

        <asp:DataGrid
          runat="server"
          id="DataGrid1" />    
    </div>
    </form>
</body>
</html>

Poniższy kod przedstawia klasę związany z kodem dla strony w poprzednim przykładzie.The following code shows the code-behind class for the page in the previous example.

public partial class param1acs_aspx : System.Web.UI.Page 
{
    private void Page_Load(object sender, System.EventArgs e)
    {
        SqlDataSource sqlSource = new SqlDataSource(
          ConfigurationManager.ConnectionStrings["MyNorthwind"].ConnectionString,
          "SELECT FirstName, LastName FROM Employees WHERE Country = @country;");

        ControlParameter country = new ControlParameter();
        country.Name = "country";
        country.Type = TypeCode.String;
        country.ControlID = "DropDownList1";
        country.PropertyName = "SelectedValue";

        // If the DefaultValue is not set, the DataGrid does not
        // display anything on the first page load. This is because
        // on the first page load, the DropDownList has no
        // selected item, and the ControlParameter evaluates to
        // String.Empty.
        country.DefaultValue = "USA";

        sqlSource.SelectParameters.Add(country);

        // Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource);

        DataGrid1.DataSource = sqlSource;
        DataGrid1.DataBind();
    }
}
Partial Class param1avb_aspx
   Inherits System.Web.UI.Page
    Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

        Dim sqlSource As SqlDataSource

        sqlSource = New SqlDataSource(ConfigurationManager.ConnectionStrings("MyNorthwind").ConnectionString, "SELECT FirstName, LastName FROM Employees WHERE Country = @country;")
        Dim country As New ControlParameter()
        country.Name = "country"
        country.Type = TypeCode.String
        country.ControlID = "DropDownList1"
        country.PropertyName = "SelectedValue"
        ' If the DefaultValue is not set, the DataGrid does not
        ' display anything on the first page load. This is because
        ' on the first page load, the DropDownList has no
        ' selected item, and the ControlParameter evaluates to
        ' String.Empty.
        country.DefaultValue = "USA"
        sqlSource.SelectParameters.Add(country)

        ' Add the SqlDataSource to the page controls collection.
        Page.Controls.Add(sqlSource)


        DataGrid1.DataSource = sqlSource
        DataGrid1.DataBind()

    End Sub
End Class

Poniższy przykład kodu ilustruje sposób rozszerzania klasy Parameter w celu utworzenia nowego typu parametru, który może być używany przez kontrolki źródła danych i inne kontrolki w scenariuszach powiązania danych.The following code example demonstrates how to extend the Parameter class to create a new parameter type that can be used by data source controls and other controls in data-binding scenarios. Kontrolka źródła danych może użyć parametru StaticParameter, aby powiązać z wartością dowolnego obiektu, zazwyczaj jest to ciąg, zadeklarowany na stronie formularzy sieci Web.A data source control can use a StaticParameter parameter to bind to the value of any object, typically a string, declared on a Web Forms page.

namespace Samples.AspNet {

  using System;
  using System.ComponentModel;
  using System.Security.Permissions;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;

  [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
  public class StaticParameter : Parameter {

    public StaticParameter() {
    }
    // The StaticParameter(string, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string) constructor to initialize the Name property.
    public StaticParameter(string name, object value) : base(name) {
      DataValue = value;
    }
    // The StaticParameter(string, TypeCode, object) constructor
    // initializes the DataValue property and calls the
    // Parameter(string, TypeCode) constructor to initialize the Name and
    // Type properties.
    public StaticParameter(string name, TypeCode type, object value) : base(name, type) {
      DataValue = value;
    }
    // The StaticParameter copy constructor is provided to ensure that
    // the state contained in the DataValue property is copied to new
    // instances of the class.
    protected StaticParameter(StaticParameter original) : base(original) {
      DataValue = original.DataValue;
    }

    // The Clone method is overridden to call the
    // StaticParameter copy constructor, so that the data in
    // the DataValue property is correctly transferred to the
    // new instance of the StaticParameter.
    protected override Parameter Clone() {
      return new StaticParameter(this);
    }
    // The DataValue can be any arbitrary object and is stored in ViewState.
    public object DataValue {
      get {
        return ViewState["Value"];
      }
      set {
        ViewState["Value"] = value;
      }
    }
    // The Value property is a type safe convenience property
    // used when the StaticParameter represents string data.
    // It gets the string value of the DataValue property, and
    // sets the DataValue property directly.
    public string Value {
      get {
        object o = DataValue;
        if (o == null || !(o is string))
          return String.Empty;
        return (string)o;
      }
      set {
        DataValue = value;
        OnParameterChanged();
      }
    }

    // The Evaluate method is overridden to return the
    // DataValue property instead of the DefaultValue.
    protected override object Evaluate(HttpContext context, Control control) {

      if (context.Request == null)
          return null;

      return DataValue;
    }
  }
}
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet

<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class StaticParameter
   Inherits Parameter


   Public Sub New()
   End Sub

  ' The StaticParameter(string, object) constructor
  ' initializes the DataValue property and calls the
  ' Parameter(string) constructor to initialize the Name property.
   Public Sub New(name As String, value As Object)
      MyBase.New(name)
      DataValue = value
   End Sub

   ' The StaticParameter(string, TypeCode, object) constructor
   ' initializes the DataValue property and calls the
   ' Parameter(string, TypeCode) constructor to initialize the Name and
   ' Type properties.
   Public Sub New(name As String, type As TypeCode, value As Object)
      MyBase.New(name, type)
      DataValue = value
   End Sub
   ' The StaticParameter copy constructor is provided to ensure that
   ' the state contained in the DataValue property is copied to new
   ' instances of the class.
   Protected Sub New(original As StaticParameter)
      MyBase.New(original)
      DataValue = original.DataValue
   End Sub

   ' The Clone method is overridden to call the
   ' StaticParameter copy constructor, so that the data in
   ' the DataValue property is correctly transferred to the
   ' new instance of the StaticParameter.
   Protected Overrides Function Clone() As Parameter
      Return New StaticParameter(Me)
   End Function

   ' The DataValue can be any arbitrary object and is stored in ViewState.
   Public Property DataValue() As Object
      Get
         Return ViewState("Value")
      End Get
      Set
         ViewState("Value") = value
      End Set
   End Property
   ' The Value property is a type safe convenience property
   ' used when the StaticParameter represents string data.
   ' It gets the string value of the DataValue property, and
   ' sets the DataValue property directly.
   Public Property Value() As String
      Get
         Dim o As Object = DataValue
         If o Is Nothing OrElse Not TypeOf o Is String Then
            Return String.Empty
         End If
         Return CStr(o)
      End Get
      Set
         DataValue = value
         OnParameterChanged()
      End Set
   End Property
   ' The Evaluate method is overridden to return the
   ' DataValue property instead of the DefaultValue.
   Protected Overrides Function Evaluate(context As HttpContext, control As Control) As Object
      If context Is Nothing Then
          Return Nothing
      Else
          Return DataValue
      End If
   End Function
End Class

End Namespace ' Samples.AspNet

Uwagi

Klasa Parameter reprezentuje parametr w sparametryzowanej kwerendzie SQL, wyrażeniu filtrowania lub wywołaniu metody obiektu biznesowego, którego kontrola źródła danych ASP.NET używa do wybierania, filtrowania lub modyfikowania danych.The Parameter class represents a parameter in a parameterized SQL query, a filtering expression, or a business object method call that an ASP.NET data source control uses to select, filter, or modify data. obiekty Parameter są zawarte w obiekcie ParameterCollection.Parameter objects are contained in a ParameterCollection object. obiekty Parameter są oceniane w czasie wykonywania, aby powiązać wartości zmiennych, które są reprezentowane dla dowolnej metody, jest używana przez formant źródła danych do współdziałania z danymi.Parameter objects are evaluated at run time, to bind the values of the variables they represent to whatever method is used by a data source control to interact with data.

Użyj klas, które pochodzą od Parameter ze źródłami danych i formantami powiązanymi z danymi, aby tworzyć aplikacje oparte na sieci Web.Use classes that derive from Parameter with data source and data-bound controls to build Web-based data applications. Te klasy parametrów są używane przez kontrolki źródła danych do powiązania określonych rodzajów wartości znalezionych w aplikacjach sieci Web do symboli zastępczych w ciągach zapytań SQL, parametrach metod obiektu biznesowego i innych.These parameter classes are used by data source controls to bind specific kinds of values found in Web applications to placeholders in SQL query strings, business object method parameters, and more. Poniższa tabela zawiera listę typów parametrów, które znajdują się w ASP.NET.The following table lists parameter types that are included in ASP.NET.

ControlParameter Tworzy powiązanie każdej publicznej właściwości kontrolki serwera sieci Web.Binds any public property of a Web server control.
FormParameter Wiąże pole formularza.Binds a form field.
SessionParameter Wiąże pole stanu sesji.Binds a session-state field.
RouteParameter Tworzy powiązanie parametru adresu URL trasy.Binds a route URL parameter.
CookieParameter Tworzy powiązanie pola cookie.Binds a cookie field.
QueryStringParameter Tworzy powiązanie parametru ciągu zapytania.Binds a query-string parameter.
ProfileParameter Wiąże pole profilu.Binds a profile field.

Aby wdrożyć własne typy parametrów niestandardowych, należy zwiększyć klasę Parameter podstawowej.Extend the base Parameter class when you want to implement your own custom parameter types.

obiekty Parameter są bardzo proste: mają Name i Właściwość Type, można je przedstawić deklaratywnie i śledzić stan w wielu żądaniach HTTP.Parameter objects are very simple: they have a Name and a Type property, can be represented declaratively, and can track state across multiple HTTP requests. Wszystkie parametry obsługują Właściwość DefaultValue, w przypadkach, gdy parametr jest powiązany z wartością, ale wartość szacuje się null w czasie wykonywania.All parameters support a DefaultValue property, for cases when a parameter is bound to a value, but the value evaluates to null at run time.

W przypadku używania kolekcji obiektów Parameter z kontrolką źródła danych ich kolejność w kolekcji może być taka sama.When using a collection of Parameter objects with a data source control, their order in the collection might matter. Aby uzyskać więcej informacji na temat sposobu użycia parametrów, zobacz Używanie parametrów z kontrolką kontrolki SqlDataSource i Używanie parametrów z kontrolką ObjectDataSource.For more information on how parameters are used, see Using Parameters with the SqlDataSource Control and Using Parameters with the ObjectDataSource Control.

Konstruktory

Parameter()

Inicjuje nowe domyślne wystąpienie klasy Parameter.Initializes a new default instance of the Parameter class.

Parameter(Parameter)

Inicjuje nowe wystąpienie klasy Parameter z wartościami oryginalnego, określonego wystąpienia.Initializes a new instance of the Parameter class with the values of the original, specified instance.

Parameter(String)

Inicjuje nowe wystąpienie klasy Parameter przy użyciu podanej nazwy.Initializes a new instance of the Parameter class, using the specified name.

Parameter(String, DbType)

Inicjuje nowe wystąpienie klasy Parameter przy użyciu określonej nazwy i typu bazy danych.Initializes a new instance of the Parameter class, using the specified name and database type.

Parameter(String, DbType, String)

Inicjuje nowe wystąpienie klasy Parameter, używając określonej nazwy, określonego typu bazy danych i określonej wartości właściwości DefaultValue.Initializes a new instance of the Parameter class, using the specified name, the specified database type, and the specified value for its DefaultValue property.

Parameter(String, TypeCode)

Inicjuje nowe wystąpienie klasy Parameter przy użyciu określonej nazwy i typu.Initializes a new instance of the Parameter class, using the specified name and type.

Parameter(String, TypeCode, String)

Inicjuje nowe wystąpienie klasy Parameter, używając określonej nazwy, określonego typu i określonego ciągu dla jego właściwości DefaultValue.Initializes a new instance of the Parameter class, using the specified name, the specified type, and the specified string for its DefaultValue property.

Właściwości

ConvertEmptyStringToNull

Pobiera lub ustawia wartość wskazującą, czy wartość, z którą jest powiązany obiekt Parameter, powinna zostać przekonwertowana na null jeśli jest 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.

DbType

Pobiera lub ustawia typ bazy danych parametru.Gets or sets the database type of the parameter.

DefaultValue

Określa wartość domyślną dla parametru, jeśli wartość, z którą jest powiązany parametr, musi zostać zainicjowana, gdy wywoływana jest metoda 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.

Direction

Wskazuje, czy obiekt Parameter jest używany do powiązania wartości z kontrolką, czy można użyć kontrolki do zmiany wartości.Indicates whether the Parameter object is used to bind a value to a control, or the control can be used to change the value.

IsTrackingViewState

Pobiera wartość wskazującą, czy obiekt Parameter zapisuje zmiany w stanie widoku.Gets a value indicating whether the Parameter object is saving changes to its view state.

Name

Pobiera lub ustawia nazwę parametru.Gets or sets the name of the parameter.

Size

Pobiera lub ustawia rozmiar parametru.Gets or sets the size of the parameter.

Type

Pobiera lub ustawia typ parametru.Gets or sets the type of the parameter.

ViewState

Pobiera słownik informacji o stanie, który umożliwia zapisywanie i przywracanie stanu widoku Parameter obiektu na wielu żądaniach dla tej samej strony.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.

Metody

Clone()

Zwraca duplikat bieżącego wystąpienia Parameter.Returns a duplicate of the current Parameter instance.

ConvertDbTypeToTypeCode(DbType)

Konwertuje wartość DbType na równoważną wartość TypeCode.Converts a DbType value to an equivalent TypeCode value.

ConvertTypeCodeToDbType(TypeCode)

Konwertuje wartość TypeCode na równoważną wartość DbType.Converts a TypeCode value to an equivalent DbType value.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Evaluate(HttpContext, Control)

Aktualizuje i zwraca wartość obiektu Parameter.Updates and returns the value of the Parameter object.

GetDatabaseType()

Pobiera wartość DbType, która jest równoważna z typem CLR bieżącego wystąpienia Parameter.Gets the DbType value that is equivalent to the CLR type of the current Parameter instance.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
LoadViewState(Object)

Przywraca stan widoku poprzednio zapisanego widoku źródła danych.Restores the data source view's previously saved view state.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnParameterChanged()

Wywołuje metodę OnParametersChanged(EventArgs) kolekcji ParameterCollection, która zawiera obiekt Parameter.Calls the OnParametersChanged(EventArgs) method of the ParameterCollection collection that contains the Parameter object.

SaveViewState()

Zapisuje zmiany stanu widoku obiektu Parameter od momentu, gdy strona została opublikowana z powrotem na serwerze.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

SetDirty()

Oznacza obiekt Parameter, więc jego stan zostanie zarejestrowany w stanie widoku.Marks the Parameter object so its state will be recorded in view state.

ToString()

Konwertuje wartość tego wystąpienia na jego równoważną reprezentację w postaci ciągu.Converts the value of this instance to its equivalent string representation.

TrackViewState()

Powoduje, że obiekt Parameter śledzi zmiany stanu widoku, aby mogły być przechowywane w obiekcie ViewState formantu i utrwalane między żądaniami dla tej samej strony.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.

Jawne implementacje interfejsu

ICloneable.Clone()

Zwraca duplikat bieżącego wystąpienia Parameter.Returns a duplicate of the current Parameter instance.

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy obiekt Parameter zapisuje zmiany w stanie widoku.Gets a value indicating whether the Parameter object is saving changes to its view state.

IStateManager.LoadViewState(Object)

Przywraca stan widoku poprzednio zapisanego widoku źródła danych.Restores the data source view's previously saved view state.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku obiektu Parameter od momentu, gdy strona została opublikowana z powrotem na serwerze.Saves the changes to the Parameter object's view state since the time the page was posted back to the server.

IStateManager.TrackViewState()

Powoduje, że obiekt Parameter śledzi zmiany stanu widoku, aby mogły być przechowywane w obiekcie ViewState formantu i utrwalane między żądaniami dla tej samej strony.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.

Dotyczy

Zobacz też