SqlDataSourceFilteringEventArgs.ParameterValues Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein IOrderedDictionary-Objekt ab, das den Zugriff auf die Parameter-Objekte der SqlDataSource-Klasse ermöglicht.
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
Eigenschaftswert
Eine IOrderedDictionary von Parameter-Objekten.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Daten aus der Northwind-Datenbank abgerufen und mithilfe von FilterExpression und FilterParametersgefiltert werden. Der FilterExpression von SqlDataSource wird angewendet, wenn die Select -Methode zum Abrufen von Daten ausgeführt wird. In diesem Beispiel enthält einen FilterExpression Platzhalter für einen Filterparameter, der in der FilterParameters Auflistung enthalten ist. Filtering Im -Ereignis wird der Filterparameter in einem Label -Steuerelement angezeigt.
<%@ 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>
Hinweise
Die SqlDataSourceFilteringEventArgs -Klasse wird verwendet, um Daten an den Filtering Ereignishandler von SqlDataSourcezu übergeben. Die ParameterValues -Eigenschaft bietet Zugriff auf die Filterparameterwerte, bevor der Filtervorgang ausgeführt wird.
Wichtig
Sie sollten alle Filterparameterwerte überprüfen, die Sie vom Client erhalten, und den Auswahlvorgang abbrechen, wenn ungültige Parameter vorhanden sind. Die Laufzeit ersetzt einfach den Parameterwert in den Filterausdruck und wendet ihn auf das Ergebnis der select-Methode an. Es ist möglich, dass kompromittierte Werte den Filterausdruck so ändern, dass mehr Zeilen angezeigt werden, als andernfalls für den Client sichtbar sind. Wenn Sie die FilterExpression -Eigenschaft als Sicherheitsmaßnahme verwenden, um die Anzahl der zurückgegebenen Elemente zu begrenzen, müssen Sie die Parameterwerte überprüfen, bevor die Filterung erfolgt.