SqlDataSourceFilteringEventArgs.ParameterValues Vlastnost
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í.
IOrderedDictionary Získá objekt, který poskytuje přístup k Parameter objektům SqlDataSource třídy.
public:
property System::Collections::Specialized::IOrderedDictionary ^ ParameterValues { System::Collections::Specialized::IOrderedDictionary ^ get(); };
public System.Collections.Specialized.IOrderedDictionary ParameterValues { get; }
member this.ParameterValues : System.Collections.Specialized.IOrderedDictionary
Public ReadOnly Property ParameterValues As IOrderedDictionary
Hodnota vlastnosti
IOrderedDictionary ObjektyParameter.
Příklady
Následující příklad kódu ukazuje, jak načíst data z databáze Northwind a filtrovat je pomocí FilterExpression a a FilterParameters. The FilterExpression of the SqlDataSource is applied anytime the Select method is executed to retrieve data. V tomto příkladu FilterExpression obsahuje zástupný symbol pro parametr filtru, který je obsažen v kolekci FilterParameters . Filtering V případě se parametr filtru zobrazí v ovládacím Label prvku.
<%@ 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">
//Protected Sub SqlDataSource1_Filtering(ByVal sender As Object, _
// ByVal e As System.Web.UI.WebControls.SqlDataSourceFilteringEventArgs)
// Label1.Text = e.ParameterValues(0).ToString()
//End Sub
protected void SqlDataSource1_Filtering(object sender, SqlDataSourceFilteringEventArgs e)
{
Label1.Text = e.ParameterValues[0].ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="FORM1" runat="server">
<p>Show all employees with the following title:
<asp:DropDownList
id="DropDownList1"
runat="server"
AutoPostBack="True">
<asp:ListItem>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:NorthwindConnection %>"
SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
FilterExpression="Title='{0}'" OnFiltering="SqlDataSource1_Filtering">
<FilterParameters>
<asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
</FilterParameters>
</asp:SqlDataSource><br />
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="False">
<columns>
<asp:BoundField Visible="False" DataField="EmployeeID" />
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Last Name" DataField="LastName" />
</columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</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">
Protected Sub SqlDataSource1_Filtering(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.SqlDataSourceFilteringEventArgs)
Label1.Text = e.ParameterValues(0).ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<p>Show all employees with the following title:
<asp:DropDownList
id="DropDownList1"
runat="server"
AutoPostBack="True">
<asp:ListItem>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:NorthwindConnection %>"
SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
FilterExpression="Title='{0}'" OnFiltering="SqlDataSource1_Filtering">
<FilterParameters>
<asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
</FilterParameters>
</asp:SqlDataSource><br />
<asp:GridView
id="GridView1"
runat="server"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="False">
<columns>
<asp:BoundField Visible="False" DataField="EmployeeID" />
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Last Name" DataField="LastName" />
</columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Poznámky
Třída SqlDataSourceFilteringEventArgs se používá k předání dat obslužné Filtering rutině SqlDataSourceudálosti . Vlastnost ParameterValues poskytuje přístup k hodnotám parametrů filtru před provedením operace filtrování.
Důležité
Měli byste ověřit všechny hodnoty parametrů filtru, které obdržíte od klienta, a zrušit operaci výběru, pokud existují neplatné parametry. Modul runtime jednoduše nahradí hodnotu parametru výrazem filtru a použije ji na výsledek metody select. Ohrožené hodnoty je možné změnit výraz filtru tak, aby zobrazoval více řádků, než by jinak mohlo být viditelné pro klienta. Pokud vlastnost používáte FilterExpression jako bezpečnostní opatření k omezení počtu vrácených položek, je nutné před filtrováním ověřit hodnoty parametrů.