<%@ 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 && 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 && 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>