ControlParameter.PropertyName Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает имя свойства элемента управления, определяемого свойством ControlID , к которому ControlParameter привязывается объект.
public:
property System::String ^ PropertyName { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.ControlPropertyNameConverter))]
public string PropertyName { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.ControlPropertyNameConverter))>]
member this.PropertyName : string with get, set
Public Property PropertyName As String
Значение свойства
Значение, string представляющее имя свойства элемента управления, к которому ControlParameter привязывается.
- Атрибуты
Примеры
В следующем примере кода показано, как использовать ControlParameter объект для привязки данных, отображаемых в элементе управления, к выбранному значению DropDownList элемента управления в ListBox декларативном сценарии. Элемент DropDownList управления является производным ListControl от элемента управления. Объект ControlParameter добавляется в SelectParameters коллекцию SqlDataSource элемента управления в форме и соответствует тексту заполнителя "@Title" в свойстве SelectCommand .
<!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>
В следующем примере кода показано, как задать ControlID и PropertyName свойства для идентификации элемента управления, к которому ControlParameter привязан объект. Пример заполняет ListBox элемент управления значениями. Свойство SelectedValueListBox элемента управления используется для фильтрации данных, SqlDataSource полученных элементом управления, и отображается элементом GridView управления.
<%@ Page language="c#"%>
<!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 Page_Load(object sender, System.EventArgs e)
{
if (IsPostBack) {
GridView1.DataBind();
}
else {
ListBox1.Items.Add(new ListItem("Nancy Davolio", "1",true));
ListBox1.Items.Add(new ListItem("Janet Leverling", "3",true));
ListBox1.Items.Add(new ListItem("Margaret Peacock","4",true));
ListBox1.Items.Add(new ListItem("Michael Suyama", "6",true));
ListBox1.Items.Add(new ListItem("Robert King", "7",true));
ListBox1.Items.Add(new ListItem("Anne Dodsworth", "9",true));
}
}
</script>
<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">
<p>Show Orders For:</p>
<p>
<asp:ListBox
id="ListBox1"
runat="server"
AutoPostBack="True">
</asp:ListBox></p>
<asp:SqlDataSource
id="OdbcDataSource1"
runat="server"
ProviderName="System.Data.Odbc"
DataSourceMode="DataSet"
SelectCommand="SELECT OrderID, ShipName FROM Orders WHERE EmployeeID = ?;"
ConnectionString="dsn=MyOdbcDSN;">
<SELECTPARAMETERS>
<asp:ControlParameter
PropertyName="SelectedValue"
ControlID="ListBox1"
Name="empID">
</asp:ControlParameter>
</SELECTPARAMETERS>
</asp:SqlDataSource>
<p>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="OdbcDataSource1">
</asp:GridView></p>
</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">
<script runat="server">
Private Sub Page_Load(sender As Object, e As EventArgs)
If (IsPostBack) Then
GridView1.DataBind()
Else
Dim li As ListItem
li = New ListItem("Nancy Davolio", "1",True)
ListBox1.Items.Add(li)
li = New ListItem("Janet Leverling", "3",True)
ListBox1.Items.Add(li)
li = New ListItem("Margaret Peacock","4",True)
ListBox1.Items.Add(li)
li = New ListItem("Michael Suyama", "6",True)
ListBox1.Items.Add(li)
li = New ListItem("Robert King", "7",True)
ListBox1.Items.Add(li)
li = New ListItem("Anne Dodsworth", "9",True)
ListBox1.Items.Add(li)
End If
End Sub ' Page_Load
</script>
<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">
<p>Show Orders For:</p>
<p>
<asp:ListBox
id="ListBox1"
runat="server"
AutoPostBack="True">
</asp:ListBox></p>
<asp:SqlDataSource
id="OdbcDataSource1"
runat="server"
ProviderName="System.Data.Odbc"
DataSourceMode="DataSet"
SelectCommand="SELECT OrderID, ShipName FROM Orders WHERE EmployeeID = ?;"
ConnectionString="dsn=MyOdbcDSN;">
<SELECTPARAMETERS>
<asp:ControlParameter
PropertyName="SelectedValue"
ControlID="ListBox1"
Name="empID">
</asp:ControlParameter>
</SELECTPARAMETERS>
</asp:SqlDataSource>
<p>
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="OdbcDataSource1">
</asp:GridView></p>
</form>
</body>
</html>
Комментарии
Свойство PropertyName определяет общедоступное свойство Control объекта, определяемое свойством ControlID , к которому ControlParameter объект привязывается во время выполнения. PropertyName можно задать простую строку, например SelectedValue, или выражение с помощью Eval синтаксиса для идентификации свойств сложного элемента управления.
PropertyName Хотя свойство является необязательным, обычно ControlIDPropertyName оба свойства задаются для Evaluate метода правильной привязки к элементу управления. Если задать ControlID свойство, но не PropertyName свойство, Evaluate метод пытается использовать ControlValuePropertyAttribute атрибут для идентификации свойства по умолчанию PropertyName . (Авторы элементов управления несут ответственность за указание этого атрибута.) Если это не удается, Evaluate вызывает ArgumentException исключение.
В следующей таблице определяется, какие элементы управления ASP.NET украшают свойства атрибутом ControlValuePropertyAttribute .