Change parameters of SqlDataSource in your own code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SqlDataSourceLimits" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="sourceEmployees"
runat="server"
ProviderName="System.Data.SqlClient"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="SELECT EmployeeID, FirstName, LastName, Title, City FROM Employees WHERE City=@City"
OnSelecting="sourceEmployees_Selecting">
<SelectParameters>
<asp:ControlParameter ControlID="lstCities"
Name="City"
PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="sourceEmployeeCities"
runat="server"
ProviderName="System.Data.SqlClient"
ConnectionString="<%$ ConnectionStrings:Northwind %>"
SelectCommand="SELECT DISTINCT City FROM Employees">
</asp:SqlDataSource>
<asp:DropDownList ID="lstCities"
runat="server"
DataTextField="City"
Width="205px"
AutoPostBack="True" >
</asp:DropDownList><br />
<br />
<asp:GridView ID="GridView1"
runat="server"
DataSourceID="sourceEmployees"
CellPadding="4"
Font-Names="Verdana"
Font-Size="Small"
ForeColor="Navy"
GridLines="None"
AutoGenerateColumns="False"
DataKeyNames="EmployeeID">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="Navy" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class SqlDataSourceLimits : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lstCities.DataSource = sourceEmployeeCities.Select(DataSourceSelectArguments.Empty);
lstCities.DataBind();
lstCities.Items.Insert(0, "(Choose a City)");
lstCities.Items.Insert(1, "(All Cities)");
lstCities.SelectedIndex = 0;
}
}
protected void sourceEmployees_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
if ((string)e.Command.Parameters["@City"].Value == "(Choose a City)")
{
e.Cancel = true;
}
else if ((string)e.Command.Parameters["@City"].Value == "(All Cities)")
{
e.Command.CommandText = "SELECT * FROM Employees";
}
}
}
File: Web.config
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<appSettings/>
<connectionStrings>
<add name="Northwind" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI"/>
</connectionStrings>
</configuration>
Related examples in the same category