Parameter 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í.
Poskytuje mechanismus, který ovládací prvky zdroje dat používají k vytvoření vazby na proměnné aplikace, identity a volby uživatelů a další data. Slouží jako základní třída pro všechny typy parametrů ASP.NET.
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
- Dědičnost
-
Parameter
- Odvozené
- Implementuje
Příklady
Následující příklad ukazuje, jak použít vybranou DropDownList hodnotu ovládacího prvku v klauzuli Where
dotazu SQL. Příklad používá ControlParameter třídu, která je odvozena od ControlParameter třídy.
Element SelectCommand definuje dotaz s parametrem s názvem "@Title", ze kterého by měla být hodnota.DropDownList1
Element ControlParameter určuje, že zástupný symbol "@Title" bude nahrazen hodnotou SelectedValue vlastnosti DropDownList1
ovládacího prvku. Element ControlParameter je přidán do SelectParameters kolekce SqlDataSource ovládacího prvku.
<!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>
Následující příklad je podobný předchozímu příkladu, ale místo značek používá kód. Při prvním DropDownList načtení stránky nemá ovládací prvek žádnou vybranou hodnotu a DefaultValue použije se vlastnost objektu Parameter .
<%@ 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>
Následující kód ukazuje třídu kódu na pozadí pro stránku v předchozím příkladu.
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
Následující příklad kódu ukazuje, jak rozšířit Parameter třídu o vytvoření nového typu parametru, který může být použit ovládacími prvky zdroje dat a dalšími ovládacími prvky ve scénářích datových vazeb. Ovládací prvek zdroje dat může použít StaticParameter
parametr k vytvoření vazby na hodnotu libovolného objektu, obvykle řetězce, deklarované na Web Forms stránce.
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
Poznámky
Třída Parameter představuje parametr v parametrizovaném dotazu SQL, filtrovací výraz nebo volání metody obchodního objektu, které ASP.NET ovládací prvek zdroje dat používá k výběru, filtrování nebo úpravě dat. Parameter objekty jsou obsaženy v objektu ParameterCollection . Parameter objekty se vyhodnocují za běhu, aby svážely hodnoty proměnných, které představují, s jakoukoli metodou, kterou používá ovládací prvek zdroje dat k interakci s daty.
K vytváření webových datových aplikací použijte třídy odvozené ze Parameter zdroje dat a ovládací prvky vázané na data. Tyto třídy parametrů se používají ovládacími prvky zdroje dat k vytvoření vazby konkrétních typů hodnot nalezených ve webových aplikacích na zástupné symboly v řetězcích dotazů SQL, parametrech obchodních objektů a dalších. Následující tabulka uvádí typy parametrů, které jsou součástí ASP.NET.
ControlParameter | Vytvoří vazbu jakékoli veřejné vlastnosti ovládacího prvku webového serveru. |
FormParameter | Vytvoří vazbu na pole formuláře. |
SessionParameter | Vytvoří vazbu na pole stavu relace. |
RouteParameter | Vytvoří vazbu na parametr adresy URL trasy. |
CookieParameter | Vytvoří vazbu na pole souboru cookie. |
QueryStringParameter | Vytvoří vazbu parametru řetězce dotazu. |
ProfileParameter | Vytvoří vazbu na pole profilu. |
Pokud chcete implementovat vlastní typy parametrů, rozšiřte základní Parameter třídu.
Parameter objekty jsou velmi jednoduché: mají Name a vlastnost Type , mohou být reprezentovány deklarativně a mohou sledovat stav napříč několika požadavky HTTP. Všechny parametry podporují DefaultValue vlastnost v případech, kdy je parametr vázán na hodnotu, ale hodnota se vyhodnocuje null
jako za běhu.
Při použití kolekce Parameter objektů s ovládacím prvku zdroje dat může být důležité jejich pořadí v kolekci. Další informace o tom, jak se parametry používají, najdete v tématech Použití parametrů s ovládacím prvku SqlDataSource a Použití parametrů s ovládacím prvku ObjectDataSource.
Konstruktory
Parameter() |
Inicializuje novou výchozí instanci Parameter třídy. |
Parameter(Parameter) |
Inicializuje novou instanci Parameter třídy s hodnotami původní zadané instance. |
Parameter(String) |
Inicializuje novou instanci Parameter třídy pomocí zadaného názvu. |
Parameter(String, DbType) |
Inicializuje novou instanci Parameter třídy pomocí zadaného názvu a typu databáze. |
Parameter(String, DbType, String) |
Inicializuje novou instanci Parameter třídy pomocí zadaného názvu, zadaného typu databáze a zadané hodnoty pro jeho DefaultValue vlastnost. |
Parameter(String, TypeCode) |
Inicializuje novou instanci Parameter třídy pomocí zadaného názvu a typu. |
Parameter(String, TypeCode, String) |
Inicializuje novou instanci Parameter třídy pomocí zadaného názvu, zadaného typu a zadaného řetězce pro jeho DefaultValue vlastnost. |
Vlastnosti
ConvertEmptyStringToNull |
Získá nebo nastaví hodnotu určující, zda má být hodnota, na kterou Parameter je objekt vázán, převedena, |
DbType |
Získá nebo nastaví typ databáze parametru. |
DefaultValue |
Určuje výchozí hodnotu parametru, pokud hodnota, kterou je parametr vázán být neinicializován při Evaluate(HttpContext, Control) zavolání metody. |
Direction |
Určuje, zda Parameter se objekt používá k vytvoření vazby hodnoty na ovládací prvek, nebo zda lze ovládací prvek použít ke změně hodnoty. |
IsTrackingViewState |
Získá hodnotu označující, zda Parameter objekt ukládá změny do svého stavu zobrazení. |
Name |
Získá nebo nastaví název parametru. |
Size |
Získá nebo nastaví velikost parametru. |
Type |
Získá nebo nastaví typ parametru. |
ViewState |
Získá slovník informací o stavu, který umožňuje uložit a obnovit stav zobrazení objektu Parameter více požadavků na stejnou stránku. |
Metody
Clone() |
Vrátí duplikát aktuální Parameter instance. |
ConvertDbTypeToTypeCode(DbType) | |
ConvertTypeCodeToDbType(TypeCode) | |
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 objektuParameter. |
GetDatabaseType() |
DbType Získá hodnotu, která je ekvivalentní k CLR typ aktuální Parameter instance. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
LoadViewState(Object) |
Obnoví dříve uložený stav zobrazení zdroje dat. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnParameterChanged() |
Zavolá metodu OnParametersChanged(EventArgs)ParameterCollection kolekce, která obsahuje Parameter objekt. |
SaveViewState() |
Uloží změny stavu zobrazení objektu Parameter od okamžiku, kdy byla stránka odeslána zpět na server. |
SetDirty() |
Označí Parameter objekt tak, aby jeho stav byl zaznamenán ve stavu zobrazení. |
ToString() |
Převede hodnotu této instance na její odpovídající řetězcovou reprezentaci. |
TrackViewState() |
Způsobí, že Parameter objekt sleduje změny stavu zobrazení, aby je bylo možné uložit do objektu ovládacího prvku ViewState a zachovat v požadavcích na stejnou stránku. |
Explicitní implementace rozhraní
ICloneable.Clone() |
Vrátí duplikát aktuální Parameter instance. |
IStateManager.IsTrackingViewState |
Získá hodnotu označující, zda Parameter objekt ukládá změny do svého stavu zobrazení. |
IStateManager.LoadViewState(Object) |
Obnoví dříve uložený stav zobrazení zdroje dat. |
IStateManager.SaveViewState() |
Uloží změny stavu zobrazení objektu Parameter od okamžiku, kdy byla stránka odeslána zpět na server. |
IStateManager.TrackViewState() |
Způsobí, že Parameter objekt sleduje změny stavu zobrazení, aby je bylo možné uložit do objektu ovládacího prvku ViewState a zachovat v požadavcích na stejnou stránku. |
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro