View Full Version : نمایش ایتم های drop downlist 2 با توچه به drop down list1
  
keshvari72
دوشنبه 14 اردیبهشت 1394, 16:45 عصر
سلام دوستان 
دو تا DropDownList  گذاشتم میخام با تو جه ب DropDownList1 محتویات DropDownList2 تغیر کنه مثلا میخام اگ شهر تهران رو تو اولی انتخاب کردم دومی شهرستان های تهران مث دماوند و ... بیاد ممنون میشم اگ کمک کنید
csharp.net
دوشنبه 14 اردیبهشت 1394, 16:58 عصر
برای پر کردن یک کمبوباکس بر اساس کمبوباکس دیگر باید به صورت زیر عمل کرد ،
 1- پر کردن کمبوباکس ها
 2- ارتباط بین آنها
 در این مثال combobox ها را با استفاده از اطلاعات موجود در بانک پر  کرده و ارتباط بین آنها را نیز از طریق برقرار می کنیم. فرض کنید دو  کمبوباکس داریم. یکی از آنها نام استان ها و دیگری نام شهر ها را در خود  جای می دهد :
 http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-1.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-1.png)
 
جدول استان ها را به صورت زیر :
http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-2.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-2.png)
 
و جدول شهرها را به صورت زیر ایجاد کنید :
 http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-3.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-3.png)
  
همانطور که در دو شکل بالا مشاهده می کنید، جدول استان ها دارای یک فیلد id  و جدول شهرها هم دارای فیلد ostan_id می باشد. فیلد ostan_id یک کلید  خارجی است و مقادیری که قرار است دریافت کند همان مقادیری است که در فیلد  id استان ها قرار دارند. پس ارتباط بین این دو جدول و کمبوباکس از این طریق  برقرار می شود. با دوبار کلیک بر روی فرم به محیط کدنویسی رفته و کدهای  زیر را بنویسید :
  
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace FillComboBoxBasedOnOther
{
    public partial class Form1 : Form
    {
        private string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Application.StartupPath + @"\db.mdf;Integrated Security=True;Connect Timeout=30";
        private SqlConnection connection = new SqlConnection();
        public Form1()
        {
            InitializeComponent();
            this.connection.ConnectionString = connectionString;
        }
        private DataTable Ostan() {                        
            string selectQuery = "SELECT id, name FROM Ostan";
            SqlCommand command = new SqlCommand(selectQuery, connection);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataTable result = new System.Data.DataTable();
            adapter.Fill(result);
            return result;                
        }
        private DataTable Shahr(int ostan_id)
        {                        
            string selectQuery = "SELECT id, name FROM Shahr WHERE ostan_id = @ostan_id";
            SqlCommand command = new SqlCommand(selectQuery, connection);
            command.Parameters.AddWithValue("@ostan_id", ostan_id);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataTable result = new System.Data.DataTable();
            adapter.Fill(result);
            return result;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.comboBox1.DisplayMember = "name";
            this.comboBox1.ValueMember = "id";
            this.comboBox1.DataSource = Ostan();            
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {            
            if (this.comboBox1.Items.Count > 0)
            {
                int ostan_id = (int)this.comboBox1.SelectedValue;
                DataTable shahrestan = Shahr(ostan_id);
                this.comboBox2.DisplayMember = "name";                
                this.comboBox2.DataSource = shahrestan;                
            }
        }
    }
}
 
برنامه را اجرا و نتیجه را مشاهده کنید :
http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-4.png (http://www.w3-farsi.com/wp-content/uploads/2015/03/fill-combobox-base-on-other-combobox-4.png)
منبع : w3-farsi.com  (http://www.w3-farsi.com/%D9%BE%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%DB%8C%DA%A9-combobox-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-combobox-%D8%AF%DB%8C%DA%AF%D8%B1/)
keshvari72
دوشنبه 14 اردیبهشت 1394, 17:00 عصر
داداش بدون sql میخام
keshvari72
دوشنبه 14 اردیبهشت 1394, 20:56 عصر
کس دیگه ای نیس؟!؟!!
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.