Parameter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece um mecanismo que os controladores de fonte de dados usam para se associar a variáveis de aplicação, identidades e escolhas de utilizador, e outros dados. Serve como classe base para todos os tipos de parâmetros 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
- Herança
-
Parameter
- Derivado
- Implementações
Exemplos
O exemplo seguinte mostra como usar o valor selecionado de um DropDownList controlo na cláusula Where de uma consulta SQL. O exemplo utiliza a ControlParameter classe, que deriva da ControlParameter classe.
O SelectCommand elemento define a consulta com um parâmetro chamado "@Title", onde o valor de DropDownList1 deve ir. O ControlParameter elemento especifica que o marcador "@Title" será substituído pelo valor da SelectedValue propriedade do DropDownList1 controlo. O ControlParameter elemento é adicionado à SelectParameters coleção do SqlDataSource controlo.
<!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>
O exemplo seguinte é semelhante ao anterior, mas usa código em vez de marcação. Quando a página carrega pela primeira vez, o DropDownList controlo não tem valor selecionado e a DefaultValue propriedade do Parameter objeto é utilizada.
<%@ 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>
O código seguinte mostra a classe code-behind da página no exemplo anterior.
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
O exemplo de código seguinte demonstra como estender a Parameter classe para criar um novo tipo de parâmetro que possa ser usado por controlos de fonte de dados e outros controlos em cenários de ligação de dados. Um controlo de fonte de dados pode usar um StaticParameter parâmetro para ligar ao valor de qualquer objeto, tipicamente uma string, declarada numa página Web Forms.
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
Observações
A classe Parameter representa um parâmetro numa consulta SQL parametrizada, numa expressão de filtragem ou numa chamada de método de objeto de negócio que um controlo de fonte de dados ASP.NET usa para selecionar, filtrar ou modificar dados. Parameter Os objetos estão contidos num ParameterCollection objeto. Parameter Os objetos são avaliados em tempo de execução, para associar os valores das variáveis que representam ao método utilizado por um controlo de fonte de dados para interagir com os dados.
Utilize classes que derivem de Parameter com controlos de fonte de dados e dados vinculados para construir aplicações de dados baseadas na Web. Estas classes de parâmetros são usadas por controlos de fonte de dados para associar tipos específicos de valores encontrados em aplicações Web a marcadores de posição em cadeias de consulta SQL, parâmetros de métodos de objetos de negócio e mais. A tabela seguinte lista os tipos de parâmetros incluídos no ASP.NET.
| Tipo de parâmetro | Description |
|---|---|
| ControlParameter | Vincula qualquer propriedade pública de um controlo de servidor Web. |
| FormParameter | Vincula um campo de formulário. |
| SessionParameter | Vincula um campo de estado de sessão. |
| RouteParameter | Associa um parâmetro URL de rota. |
| CookieParameter | Vincula um campo de bolachas. |
| QueryStringParameter | Liga um parâmetro de sequência de consulta. |
| ProfileParameter | Atribui um campo de perfil. |
Estende a classe base Parameter quando quiseres implementar os teus próprios tipos de parâmetros personalizados.
Parameter Os objetos são muito simples: têm a propriedade A Name e A Type , podem ser representados declarativamente e podem acompanhar o estado através de múltiplos pedidos HTTP. Todos os parâmetros suportam uma DefaultValue propriedade, nos casos em que um parâmetro está vinculado a um valor, mas o valor é avaliado a null em tempo de execução.
Ao usar uma coleção de Parameter objetos com controlo de fonte de dados, a ordem deles na coleção pode ter importância. Para mais informações sobre como os parâmetros são utilizados, consulte Utilização de Parâmetros com o Controlo SqlDataSource e Utilização de Parâmetros com o Controlo ObjectDataSource.
Construtores
| Name | Description |
|---|---|
| Parameter() |
Inicializa uma nova instância padrão da Parameter classe. |
| Parameter(Parameter) |
Inicializa uma nova instância da Parameter classe com os valores da instância original e especificada. |
| Parameter(String, DbType, String) |
Inicializa uma nova instância da Parameter classe, usando o nome especificado, o tipo de base de dados especificado e o valor especificado para a sua DefaultValue propriedade. |
| Parameter(String, DbType) |
Inicializa uma nova instância da Parameter classe, usando o nome especificado e o tipo de base de dados. |
| Parameter(String, TypeCode, String) |
Inicializa uma nova instância da Parameter classe, usando o nome especificado, o tipo especificado e a string especificada para a sua DefaultValue propriedade. |
| Parameter(String, TypeCode) |
Inicializa uma nova instância da Parameter classe, usando o nome e tipo especificados. |
| Parameter(String) |
Inicializa uma nova instância da Parameter classe, usando o nome especificado. |
Propriedades
| Name | Description |
|---|---|
| ConvertEmptyStringToNull |
Obtém ou define um valor que indica se o valor ao qual o Parameter objeto está ligado deve ser convertido se |
| DbType |
Obtém ou define o tipo de base de dados do parâmetro. |
| DefaultValue |
Especifica um valor por defeito para o parâmetro, caso o valor que o parâmetro está vinculado a ser não inicializado quando o Evaluate(HttpContext, Control) método for chamado. |
| Direction |
Indica se o Parameter objeto é usado para associar um valor a um controlo, ou se o controlo pode ser usado para alterar o valor. |
| IsTrackingViewState |
Recebe um valor que indica se o Parameter objeto está a guardar alterações ao seu estado de visualização. |
| Name |
Obtém ou define o nome do parâmetro. |
| Size |
Obtém ou define o tamanho do parâmetro. |
| Type |
Obtém ou define o tipo do parâmetro. |
| ViewState |
Obtém um dicionário de informação de estado que permite guardar e restaurar o estado de visualização de um Parameter objeto através de múltiplos pedidos para a mesma página. |
Métodos
| Name | Description |
|---|---|
| Clone() |
Devolve um duplicado da instância atual Parameter . |
| ConvertDbTypeToTypeCode(DbType) | |
| ConvertTypeCodeToDbType(TypeCode) | |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Evaluate(HttpContext, Control) |
Atualiza e devolve o valor do Parameter objeto. |
| GetDatabaseType() |
Obtém o DbType valor equivalente ao tipo CLR da instância atual Parameter . |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| LoadViewState(Object) |
Restaura o estado da vista de fonte de dados anteriormente guardada. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnParameterChanged() |
Chama o OnParametersChanged(EventArgs) método da ParameterCollection coleção que contém o Parameter objeto. |
| SaveViewState() |
Guarda as alterações ao estado de Parameter visualização do objeto desde o momento em que a página foi publicada de volta no servidor. |
| SetDirty() |
Marca o Parameter objeto para que o seu estado fique registado no estado de visualização. |
| ToString() |
Converte o valor desta instância para a sua representação equivalente da cadeia. |
| TrackViewState() |
Faz com que o Parameter objeto acompanhe alterações ao seu estado de visualização para que possam ser armazenadas no objeto do ViewState controlo e persistidas entre pedidos para a mesma página. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ICloneable.Clone() |
Devolve um duplicado da instância atual Parameter . |
| IStateManager.IsTrackingViewState |
Recebe um valor que indica se o Parameter objeto está a guardar alterações ao seu estado de visualização. |
| IStateManager.LoadViewState(Object) |
Restaura o estado da vista de fonte de dados anteriormente guardada. |
| IStateManager.SaveViewState() |
Guarda as alterações ao estado de Parameter visualização do objeto desde o momento em que a página foi publicada de volta no servidor. |
| IStateManager.TrackViewState() |
Faz com que o Parameter objeto acompanhe alterações ao seu estado de visualização para que possam ser armazenadas no objeto do ViewState controlo e persistidas entre pedidos para a mesma página. |