ایجاد DropDownList تو د ر تو

یکشنبه 3 خرداد 1394

دراین مقاله نشان میدهیم که چگونه یک DropDownList داخل DropDownList دیگر در asp.Net درج میشود برای مثال شما در سایت خود میخواهید این امکان را قرار دهید که با انتخاب کشور، استان های مربوط به آن کشور وشهر های مربوط به استان و کشور نشان داده شود

ایجاد  DropDownList تو د ر تو

برای ایجاد DropDownList  تو در تو باید مراحل زیر را  طی کنیم:

مرحله 1

ویژوال استادیو را باز میکنیم و یک پروژه   از نوع asp.Net به نام  Cascade_dropdownlist_demo   ایجاد میکنیم.

مرحله 2

روی Solution Explorer    راست کلیک کرده در Add قسمت NewItem   یک  Web From   به نام Default.aspx ایجاد میکنیم.

 

 

مرحله 3

شما  نیاز دارید که مجدد روی  Solution Explorer    راست کلیک کرده  و در Add قسمت NewItem 

، SQL Server Database را انتخاب کنید که بتوانم بانک  اطلاعاتی خود را به برنامه اضافه کنید ( برای اضافه کردن بانک اطلاعاتی میتوان از کلید میانبر CTRL + ALT + Sاستفاده کنید )

لازم بذکر است  این نکته را یاداوری کنم که هنگام اضافه کردن SQL Server Database یک پیغام با این مضمون نمایش داده میشود که آیا مایل هستید  پایگاه خود را در پوشه App_Data_Folder؟ قرار دهیم که ما گزینه Yes را انتخاب میکنیم

مرحله 4:

در Server Explorer  ، در  Data Conction راست کلیک کرده  وگزینه Crate New Sql Server Database    را انتخاب میکنیم ویک بانک اطلاعاتی با نام "dropdownlistDB"ایجاد میکنیم   سپس در قسمت جداول  رفته و راست کلیک کرده و گزینه Add New Table را انتخاب میکنیم

یک جدول  به نام Country ایجاد میکنیم که فیلد Country_id کلید اصلی و Identity جدول باشد

 

یک جدول دیگر به نام tbl_State  برای  انتخاب  استان ها  ایجاد میکنیم  که فیلد  state_id    آن کلید اصلی و Identity جدول است

 

یک جدول دیگر به نام tbl_city  برای  انتخاب  شهر ها ایجاد میکنیم  که فیلد  city_id    آن کلید اصلی و Identity جدول است

 فقط باید این نکته را یاد اوری کنیم که حتما  درجداول شما باید Identity=True     باشد

و حالا به صورت دستی در جداول خود، داده ثبت میکنیم

مرحله 5

در قسمت Solution Explorer  وارد صفحه Default.aspxشده و شروع به طراحی صفحه خود میکنیم

از قسمت ToolBox   سه عدد DropDownList   ،  یکی  برای انتخاب کشور و یکی برای انتخاب  استان و دیگری برای انتخاب شهر ایجاد میکنیم

 تصویری از صفحه Default.aspx

 در صفحه    Default.aspx.cs   بایستی   using های زیر را به برنامه اضافه کنیم

 

در رویداد Page_Load صفحه کد های زیر را اضافه میکنیم

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=dropdownlistDB;user id=sa;password=123") ;

            SqlCommand cmd = new SqlCommand("select * from tbl_country", con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            DropDownList1.DataSource = dt;
            DropDownList1.DataBind();
      
          
        }

    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList2.Items.Clear();
        DropDownList2.Items.Add("انتخاب استان");

        SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=dropdownlistDB;user id=sa;password=123;");
        SqlCommand cmd = new SqlCommand("select * from tbl_state where country_id=" + DropDownList1.SelectedItem.Value, con);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        DropDownList2.DataSource= dt;
        DropDownList2.DataBind();
       
    }
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList3.Items.Clear();
        DropDownList3.Items.Add(" انتخاب شهر");

        SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=dropdownlistDB;user id=sa;password=123;");
        SqlCommand cmd = new SqlCommand("select * from tbl_city where state_id=" + DropDownList2.SelectedItem.Value, con);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sda.Fill(dt);

        DropDownList3.DataSource = dt;
        DropDownList3.DataBind();

همان طور که از کد ها معلوم است  ابتدا بایستی  برای  خواندن اطلاعات جداول به بانک اطلاعاتی متصل شویم

 

شما بایستی Connection String         مربوط به بانک اطلاعاتی خود را در  برنامه اضافه کنید  برای اینکار  بایستی درServer Explorer بر روی بانک اطلاعاتی خود راست کلیک کرده Properties  را انتخاب کنید و سپس شما آن جا  Connection String را مشاهده میکنید   و آن را کپی کرده و در SQL connection قرار میدهید ( فقط این نکته را یاد اوری کنم که Connection String شما با من فرق دارد )

 

 نمایی از اجرای برنامه

موفق باشید

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید