Monday, July 6, 2009

Cascading Extender dropdownlist

Database REQUIREMENT
Table EIM_COUNTRY
COUNTRY_CODE INT
COUNTRY_NAME NVARCHAR(100)
ISACTIVE BIT
2)EIM_STATE
STATE_CODE INT
STATE_NAME NVARCHAR(100)
COUNTRY_CODE INT
ISACTIVE BIT

........................................next........................
ADD CascadingDataService.asmx
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Data;
using AjaxControlToolkit;

///
/// Summary description for CascadingDataService
///

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class CascadingDataService : System.Web.Services.WebService
{

string conString = System.Configuration.ConfigurationManager.ConnectionStrings["dbEcommerceConnectionString"].ToString();

public CascadingDataService()
{

//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public CascadingDropDownNameValue[] GetCountry(string knownCategoryValues, string category)
{
SqlConnection sqlConn = new SqlConnection(conString);
sqlConn.Open();
SqlCommand sqlSelect = new SqlCommand("SELECT * FROM ECM_COUNTRY", sqlConn);
sqlSelect.CommandType = System.Data.CommandType.Text;
SqlDataAdapter sqlAdapter = new SqlDataAdapter(sqlSelect);
DataSet myDataset = new DataSet();
sqlAdapter.Fill(myDataset);
sqlConn.Close();
//dsCarsTableAdapters.CarsTableAdapter makeAdapter = new dsCarsTableAdapters.CarsTableAdapter();
//dsCars.CarsDataTable makes = makeAdapter.GetAllCars();
List values = new List();
foreach (DataRow dr in myDataset.Tables[0].Rows)
{
string name = (string)dr["COUNTRY_NAME"];
int code = (int)dr["COUNTRY_CODE"];
values.Add(new CascadingDropDownNameValue(name, code.ToString()));
}
return values.ToArray();
}
[WebMethod]
public AjaxControlToolkit.CascadingDropDownNameValue[] GetStates(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
int makeId;
if (!kv.ContainsKey("name") || !Int32.TryParse(kv["name"], out makeId))
{
return null;
}
SqlConnection sqlConn = new SqlConnection(conString);
sqlConn.Open();
SqlCommand sqlSelect = new SqlCommand("SELECT * FROM ECM_STATES where COUNTRY_CODE = @COUNTRY_CODE", sqlConn);
sqlSelect.CommandType = System.Data.CommandType.Text;
sqlSelect.Parameters.Add("@COUNTRY_CODE", SqlDbType.Int).Value = makeId;
SqlDataAdapter sqlAdapter = new SqlDataAdapter(sqlSelect);
DataSet myDataset = new DataSet();
sqlAdapter.Fill(myDataset);
sqlConn.Close();

List cascadingValues = new List();

foreach (DataRow dRow in myDataset.Tables[0].Rows)
{
string StateID = dRow["STATE_CODE"].ToString();
string StateName = dRow["STATE_NAME"].ToString();
cascadingValues.Add(new CascadingDropDownNameValue(StateName, StateID));
}

return cascadingValues.ToArray();
}
}
......defalut.aspx














   <asp:dropdownlist id="ddlMakes" runat="server" width="240px">
<cc1:cascadingdropdown id="ddlMakes_CascadingDropDown" runat="server"
enabled="True"
category="name"
prompttext="Choose a Country...."
loadingtext="Please wait ..."
servicepath="CascadingDataService.asmx"
servicemethod="GetCountry"
targetcontrolid="ddlMakes">
</cc1:cascadingdropdown>
</asp:dropdownlist>



         <asp:dropdownlist id="ddlModels" runat="server" width="240px">
<cc1:cascadingdropdown id="ddlModels_CascadingDropDown" runat="server" enabled="True"
parentcontrolid="ddlMakes"
category="StateName"
servicepath="CascadingDataService.asmx"
servicemethod="GetStates"
targetcontrolid="ddlModels"
prompttext="Choose a State...."
loadingtext="Please wait ...">
</cc1:cascadingdropdown>
</asp:dropdownlist>







No comments:

Post a Comment

http://blogsiteslist.com