Parameter Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veri kaynağı denetimlerinin uygulama değişkenlerine, kullanıcı kimliklerine ve seçimlerine ve diğer verilere bağlanmak için kullandığı bir mekanizma sağlar. Tüm ASP.NET parametre türleri için temel sınıf görevi görür.
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
- Devralma
-
Parameter
- Türetilmiş
- Uygulamalar
Örnekler
Aşağıdaki örnekte, sql sorgusunun Where
yan tümcesinde bir DropDownList denetimin seçili değerinin nasıl kullanılacağı gösterilmektedir. Örnek, sınıfından ControlParameter türetilen sınıfını ControlParameter kullanır.
öğesi, SelectCommand değerinin gitmesi gereken "@Title" adlı bir parametreyle sorguyu DropDownList1
tanımlar.
ControlParameter öğesi, "@Title" yer tutucusunun denetimin özelliğinin SelectedValueDropDownList1
değeriyle değiştirileceğini belirtir.
ControlParameter öğesi, denetimin SelectParameters koleksiyonuna SqlDataSource eklenir.
<!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>
Aşağıdaki örnek öncekine benzer, ancak işaretleme yerine kod kullanır. Sayfa ilk kez yüklendiğinde, denetimin DropDownList seçili değeri yoktur ve DefaultValue nesnenin Parameter özelliği kullanılır.
<%@ 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>
Aşağıdaki kod, önceki örnekteki sayfanın arka planındaki kod sınıfını gösterir.
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
Aşağıdaki kod örneği, veri bağlama senaryolarında veri kaynağı denetimleri ve diğer denetimler tarafından kullanılabilecek yeni bir parametre türü oluşturmak için sınıfının nasıl genişletildiğini Parameter gösterir. Veri kaynağı denetimi, web forms sayfasında bildirilen herhangi bir StaticParameter
nesnenin (genellikle bir dize) değerine bağlanmak için bir parametre kullanabilir.
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
Açıklamalar
Parameter sınıfı parametreli SQL sorgusundaki bir parametreyi, filtreleme ifadesini veya ASP.NET veri kaynağı denetiminin verileri seçmek, filtrelemek veya değiştirmek için kullandığı bir iş nesnesi yöntemi çağrısını temsil eder. Parameter nesneleri bir ParameterCollection nesnenin içinde yer alır. Parameter nesneleri, temsil ettikleri değişkenlerin değerlerini verilerle etkileşime geçmek için bir veri kaynağı denetimi tarafından kullanılan yönteme bağlamak için çalışma zamanında değerlendirilir.
Web tabanlı veri uygulamaları oluşturmak için veri kaynağı ve veriye bağlı denetimlerle türetilen Parameter sınıfları kullanın. Bu parametre sınıfları, Web uygulamalarında bulunan belirli türlerdeki değerleri SQL sorgu dizelerindeki yer tutuculara, iş nesnesi yöntemi parametrelerine ve daha fazlasına bağlamak için veri kaynağı denetimleri tarafından kullanılır. Aşağıdaki tabloda, ASP.NET dahil edilen parametre türleri listelenmiştir.
ControlParameter | Bir Web sunucusu denetiminin tüm ortak özelliğini bağlar. |
FormParameter | Form alanını bağlar. |
SessionParameter | Oturum durumu alanını bağlar. |
RouteParameter | Yol URL'si parametresini bağlar. |
CookieParameter | Tanımlama bilgisi alanını bağlar. |
QueryStringParameter | Bir sorgu dizesi parametresi bağlar. |
ProfileParameter | Profil alanını bağlar. |
Kendi özel parametre türlerinizi uygulamak istediğinizde temel Parameter sınıfı genişletin.
Parameternesneleri çok basittir: bir ve Type özelliğine sahiptirlerName, bildirim temelli olarak temsil edilebilirler ve birden çok HTTP isteğinde durumu izleyebilirler. Bir parametrenin bir DefaultValue değere bağlı olduğu, ancak değerin çalışma zamanında değerlendirildiğinde null
olduğu durumlar için tüm parametreler bir özelliği destekler.
Veri kaynağı denetimine sahip bir nesne koleksiyonu Parameter kullanılırken bunların koleksiyondaki sırası önemli olabilir. Parametrelerin nasıl kullanıldığı hakkında daha fazla bilgi için bkz. SqlDataSource Denetimiyle Parametreleri Kullanma ve ObjectDataSource Denetimiyle Parametreleri Kullanma.
Oluşturucular
Parameter() |
sınıfının yeni bir varsayılan örneğini Parameter başlatır. |
Parameter(Parameter) |
Özgün, belirtilen örneğin değerleriyle sınıfının yeni bir örneğini Parameter başlatır. |
Parameter(String) |
Belirtilen adı kullanarak sınıfının yeni bir örneğini Parameter başlatır. |
Parameter(String, DbType) |
Belirtilen adı ve veritabanı türünü kullanarak sınıfının yeni bir örneğini Parameter başlatır. |
Parameter(String, DbType, String) |
Belirtilen adı, belirtilen veritabanı türünü ve özelliği için belirtilen değeri kullanarak sınıfının yeni bir örneğini ParameterDefaultValue başlatır. |
Parameter(String, TypeCode) |
Belirtilen adı ve türü kullanarak sınıfının yeni bir örneğini Parameter başlatır. |
Parameter(String, TypeCode, String) |
Belirtilen adı, belirtilen türü ve özelliği için belirtilen dizeyi kullanarak sınıfın yeni bir örneğini ParameterDefaultValue başlatır. |
Özellikler
ConvertEmptyStringToNull |
Nesnenin bağlı olduğu değerin Parameter ise Emptydeğerine dönüştürülmesi |
DbType |
Parametresinin veritabanı türünü alır veya ayarlar. |
DefaultValue |
yöntemi çağrıldığında Evaluate(HttpContext, Control) parametrenin başlatılmamış olarak bağlı olduğu değerin parametresi için varsayılan değeri belirtir. |
Direction |
Nesnenin Parameter bir değeri denetime bağlamak için kullanılıp kullanılmadığını veya denetimin değeri değiştirmek için kullanılıp kullanılamayacağını gösterir. |
IsTrackingViewState |
Nesnenin Parameter görünüm durumundaki değişiklikleri kaydedip kaydetmediğini belirten bir değer alır. |
Name |
Parametrenin adını alır veya ayarlar. |
Size |
Parametresinin boyutunu alır veya ayarlar. |
Type |
Parametrenin türünü alır veya ayarlar. |
ViewState |
Aynı sayfa için birden çok istekte bir nesnenin görünüm durumunu kaydetmenizi ve geri yüklemenizi sağlayan durum Parameter bilgileri sözlüğü alır. |
Yöntemler
Clone() |
Geçerli Parameter örneğin bir kopyasını döndürür. |
ConvertDbTypeToTypeCode(DbType) | |
ConvertTypeCodeToDbType(TypeCode) | |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Evaluate(HttpContext, Control) |
Nesnesinin değerini Parameter güncelleştirir ve döndürür. |
GetDatabaseType() |
DbType Geçerli Parameter örneğin CLR türüne eşdeğer değeri alır. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
LoadViewState(Object) |
Veri kaynağı görünümünün daha önce kaydedilmiş görünüm durumunu geri yükler. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnParameterChanged() |
OnParametersChanged(EventArgs) nesnesini içeren Parameter koleksiyonun ParameterCollection yöntemini çağırır. |
SaveViewState() |
Sayfanın sunucuya Parameter geri gönderildiği zamandan bu yana nesnenin görünüm durumundaki değişiklikleri kaydeder. |
SetDirty() |
Nesnenin durumunun Parameter görünüm durumunda kaydedileceği şekilde işaretler. |
ToString() |
Bu örneğinin değerini eşdeğer dize gösterimine dönüştürür. |
TrackViewState() |
Nesnenin görünüm durumundaki Parameter değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState nesnesinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale getirilir. |
Belirtik Arabirim Kullanımları
ICloneable.Clone() |
Geçerli Parameter örneğin bir kopyasını döndürür. |
IStateManager.IsTrackingViewState |
Nesnenin Parameter görünüm durumundaki değişiklikleri kaydedip kaydetmediğini belirten bir değer alır. |
IStateManager.LoadViewState(Object) |
Veri kaynağı görünümünün daha önce kaydedilmiş görünüm durumunu geri yükler. |
IStateManager.SaveViewState() |
Sayfanın sunucuya Parameter geri gönderildiği zamandan bu yana nesnenin görünüm durumundaki değişiklikleri kaydeder. |
IStateManager.TrackViewState() |
Nesnenin görünüm durumundaki Parameter değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState nesnesinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale getirilir. |