WEBSWAPP Silverlight ASP.NET 3.5 ASP.NET 2.0 ASP.NET 1.0
Cascading Lists
AJAX ToolKit
Hierarchies
C#-ListView C#-GridView UpdatePanel
    
<%@ Control Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Linq" %> <script runat="server" language="C#"> private int _cityId = 0; private int _countryId = 0; private int _provinceId = 0; private WEBSWAPP.Website.Data.SamplesDataContext db; public int CityId { get { return int.Parse(ddlCity.SelectedValue); } set { _cityId = value; db = new WEBSWAPP.Website.Data.SamplesDataContext(); var city = db.Locations.Where(l => l.Id == _cityId).Single(); if (city != null) { _provinceId = city.Location1.Id; _countryId = city.Location1.Location1.Id; } } } protected void Page_Load(object sender, EventArgs e) { } protected void ddlCountry_DataBound(Object sender, EventArgs e) { if (_countryId != 0) { System.Web.UI.WebControls.ListItem li = ddlCountry.Items.FindByValue(_countryId.ToString()); if (li != null) li.Selected = true; } } protected void ddlProvince_DataBound(object sender, EventArgs e) { if (_provinceId != 0) { System.Web.UI.WebControls.ListItem li = ddlProvince.Items.FindByValue(_provinceId.ToString()); if (li != null) li.Selected = true; } ddlCity.DataBind(); } protected void ddlCity_DataBound(object sender, EventArgs e) { if (_cityId != 0) { System.Web.UI.WebControls.ListItem li = ddlCity.Items.FindByValue(_cityId.ToString()); if (li != null) li.Selected = true; } } </script> <div> <asp:LinqDataSource ID="lnqCountry" runat="server" ContextTypeName="WEBSWAPP.Website.Data.SamplesDataContext" Select="new (Id, Name)" TableName="Locations" Where="TypeId == @TypeId"> <WhereParameters> <asp:Parameter DefaultValue="1" Name="TypeId" Type="Int32" /> </WhereParameters> </asp:LinqDataSource> <asp:DropDownList ID="ddlCountry" runat="server" DataSourceID="lnqCountry" DataTextField="Name" DataValueField="Id" AutoPostBack="true" OnDataBound="ddlCountry_DataBound" Width="120px" > </asp:DropDownList> <asp:LinqDataSource ID="lnqProvince" runat="server" ContextTypeName="WEBSWAPP.Website.Data.SamplesDataContext" Select="new (Id, Name)" TableName="Locations" Where="TypeId == @TypeId &amp;&amp; ParentId == @ParentId" > <WhereParameters> <asp:Parameter DefaultValue="2" Name="TypeId" Type="Int32" /> <asp:ControlParameter ControlID="ddlCountry" Name="ParentId" PropertyName="SelectedValue" Type="Int32" /> </WhereParameters> </asp:LinqDataSource> <asp:DropDownList ID="ddlProvince" runat="server" DataSourceID="lnqProvince" DataTextField="Name" DataValueField="Id" AutoPostBack="true" ondatabound="ddlProvince_DataBound" Width="150px" > </asp:DropDownList> <asp:LinqDataSource ID="lnqCity" runat="server" ContextTypeName="WEBSWAPP.Website.Data.SamplesDataContext" Select="new (Id, Name)" TableName="Locations" Where="TypeId == @TypeId &amp;&amp; ParentId == @ParentId"> <WhereParameters> <asp:Parameter DefaultValue="3" Name="TypeId" Type="Int32" /> <asp:ControlParameter ControlID="ddlProvince" Name="ParentId" PropertyName="SelectedValue" Type="Int32" /> </WhereParameters> </asp:LinqDataSource> <asp:DropDownList ID="ddlCity" runat="server" DataSourceID="lnqCity" DataTextField="Name" Width="150px" DataValueField="Id" OnDataBound="ddlCity_DataBound" > </asp:DropDownList> </div>