Wednesday, December 28, 2011

CascadingDropDown in asp.net

Example


in Cascadingdropdown.asmx


'create two table
'city and country



using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using AjaxControlToolkit;
using System.Data;
using System.Collections.Specialized;

/// <summary>
/// Summary description for CascadingDropDown
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
public class CascadingDropDown : System.Web.Services.WebService {
    string strConnection = ConfigurationManager.ConnectionStrings["dbConnectionString"].ConnectionString;


    public CascadingDropDown () 

{
        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
 }
    [WebMethod]
    public CascadingDropDownNameValue[] GetCountries(string knownCategoryValues, string category) 
    {
        SqlConnection con = new SqlConnection(strConnection);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "Select * from Country";
        SqlDataAdapter dAdapter = new SqlDataAdapter();
        dAdapter.SelectCommand = cmd;
        con.Open();
        DataSet objDs = new DataSet();
        dAdapter.Fill(objDs);
        con.Close();


        List<CascadingDropDownNameValue> countryNames = new List<CascadingDropDownNameValue>();
        foreach (DataRow dRow in objDs.Tables[0].Rows)
        {
            string countryID = dRow["CountryID"].ToString();
            string countryName = dRow["CountryName"].ToString();
            countryNames.Add(new CascadingDropDownNameValue(countryName, countryID));
        }
        return countryNames.ToArray();
       
    }


    [WebMethod]
    public CascadingDropDownNameValue[] GetCities(string knownCategoryValues, string category)
    {
        int countryID;
        StringDictionary countryValues = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        countryID = Convert.ToInt32(countryValues["Country"]);
        SqlConnection con = new SqlConnection(strConnection);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.Parameters.AddWithValue("@CountryID", countryID);
        cmd.CommandText = "Select * from City where CountryID = @CountryID";
        SqlDataAdapter dAdapter = new SqlDataAdapter();
        dAdapter.SelectCommand = cmd;
        con.Open();
        DataSet objDs = new DataSet();
        dAdapter.Fill(objDs);
        con.Close();
        List<CascadingDropDownNameValue> cityNames = new List<CascadingDropDownNameValue>();
        foreach (DataRow dRow in objDs.Tables[0].Rows)
        {
            string cityID = dRow["CityID"].ToString();
            string cityName = dRow["CityName"].ToString();
            cityNames.Add(new CascadingDropDownNameValue(cityName, cityID));
        }
        return cityNames.ToArray();
    }
    
}


in default.aspx

<form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
        <asp:ServiceReference Path="AutoComplete.asmx" />
        <asp:ServiceReference Path="CascadingDropDown.asmx" />
        </Services>
        </asp:ScriptManager>
     <asp:DropDownList ID="ddlCountry" runat="server">
                    </asp:DropDownList><br />
 <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1"
       runat="server"

    Category="Country" 


    TargetControlID="ddlCountry"

   PromptText="-Select Country-"
   LoadingText="Loading Countries.."
   ServicePath="CascadingDropDown.asmx"
   ServiceMethod="GetCountries">
      </ajaxToolkit:CascadingDropDown>
                   
 <asp:DropDownList ID="ddlCity" runat="server" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged">
  </asp:DropDownList>

<br />
<ajaxToolkit:CascadingDropDown ID="CascadingDropDown2"
 runat="server"
 Category="City"
 TargetControlID="ddlCity"
 ParentControlID="ddlCountry"
 PromptText="-Select City-"
 LoadingText="Loading Cities.."
 ServicePath="CascadingDropDown.asmx"
 ServiceMethod="GetCities">
 </ajaxToolkit:CascadingDropDown>
    </div>
   </form>

For detail:Click to view

Next>>(CollapsiblePanelExtender)           (AutoComplete)<<Back

No comments:

Post a Comment