PDA

View Full Version : انتقال اطلاعات با دبل کلیک از دیتاگری به دیتاگرید دیگر



titi1363
دوشنبه 03 مهر 1391, 10:39 صبح
سلام من ی دیتا گرید(دیتاگرید شماره 2) دارم که اطلاعاتش از دیتاگرید دیگری(دیتاگرید شماره 1) لود میشه ,حالا میخوام وقتی روی سطری دلخواه از دیتاگرید شماره 2 دبل کلیک کردم اطلاعات اون سطر بره تو دیتاگرید سوم .در واقع اضافه بشه به دیتاگرید سوم .لطفا راهنمایی کنید .مرسی

amir4015
دوشنبه 03 مهر 1391, 14:54 عصر
سلام دوست عزير اين يك نمونه از انتقال اطلاعات بين دو گريدويو

tb5 = new System.Data.DataTable();
DataColumn dc0 = new DataColumn("meli", typeof(string));
DataColumn dc1 = new DataColumn("name", typeof(string));
DataColumn dc2 = new DataColumn("family", typeof(string));
DataColumn dc3 = new DataColumn("mobail", typeof(string));
tb5.Columns.Add(dc0);
tb5.Columns.Add(dc1);
tb5.Columns.Add(dc2);
tb5.Columns.Add(dc3);
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
DataRow dr = tb5.NewRow();
dr[0] = dataGridView1.Rows[i].Cells[1].Value;//meli
dr[1] = dataGridView1.Rows[i].Cells[2].Value;//name
dr[2] = dataGridView1.Rows[i].Cells[3].Value;//family
dr[3] = dataGridView1.Rows[i].Cells[6].Value;//mobail
tb5.Rows.Add(dr);
}
}//for
dataGridView2.DataSource = tb5;

ali_habibi1384
دوشنبه 03 مهر 1391, 16:29 عصر
خب سطر جاري رو به ديتا گريد مورد نظر add كنيد اگر هم گريدتون به ديتا تيبل پر ميشه به ديتا تيبلش اضافه كنيد تا خودش خودكار پر بشه

titi1363
دوشنبه 03 مهر 1391, 18:38 عصر
amir4015 (http://barnamenevis.org/member.php?214732-amir4015)
نمیشه،اطلاعات کل جدولو میاره
ali_habibi1384 (http://barnamenevis.org/member.php?48789-ali_habibi1384)
خوب منم میدونم باید اینکارو کنم ولی چطور؟به دیتاتیبل وصل میکنم کل جدولو نشون میده تو دیتاگرید دوم.من میخوام هر سطری که انتخاب کردمو نشوت بده

amir4015
دوشنبه 03 مهر 1391, 20:29 عصر
amir4015 (http://barnamenevis.org/member.php?214732-amir4015)
نمیشه،اطلاعات کل جدولو میاره
ali_habibi1384 (http://barnamenevis.org/member.php?48789-ali_habibi1384)
خوب منم میدونم باید اینکارو کنم ولی چطور؟به دیتاتیبل وصل میکنم کل جدولو نشون میده تو دیتاگرید دوم.من میخوام هر سطری که انتخاب کردمو نشوت بده
دوست عزيز نبايد انتظار داشته باشيد كد رو اماده بزارم(خلاف قوانين انجمن)
براي اينكه كل گريد نياد فور رو حذف كن بعد اينو داخل خاصيت كليلك گريد ويو بنويس و ديگه به سطرش مقدار نده

ali_habibi1384
دوشنبه 03 مهر 1391, 20:42 عصر
شتباه متوجه شديد منظور من همون سطر جاري بود كه با
dgv.currentrow
بدست مياد . اينكه گفتم اگر توي ديتا تيبل ميخواين اد كنيد واسه اين بود كه گفتم شايد گريدتون از قبل به ديتا تيبل مشابهي وصل شده باشه

amir4015
دوشنبه 03 مهر 1391, 20:50 عصر
دوست عزيز اين كدي هست كه شما مي خوايد(دوستان ببخشن، فكر كردم منظورم رو خوب نگفتم كه چطور كد رو بنويسن)

privatevoid dataGridView1_Click(object sender, EventArgs e)
{
System.Data.DataTable tb5 = new System.Data.DataTable();
DataColumn dc0 = newDataColumn("meli", typeof(string));
DataColumn dc1 = newDataColumn("name", typeof(string));
DataColumn dc2 = newDataColumn("family", typeof(string));
DataColumn dc3 = newDataColumn("mobail", typeof(string));
tb5.Columns.Add(dc0);tb5.Columns.Add(dc1);
tb5.Columns.Add(dc2);tb5.Columns.Add(dc3);

DataRow dr = tb5.NewRow();
dr[0] = dataGridView1.CurrentRow.Cells[0].Value.ToString();
dr[1] = dataGridView1.CurrentRow.Cells[1].Value.ToString();
dr[2] = dataGridView1.CurrentRow.Cells[2].Value.ToString();
dr[3] = dataGridView1.CurrentRow.Cells[3].Value.ToString();
tb5.Rows.Add(dr);

dataGridView2.DataSource = tb5;
}


موفق باشيد

raziyehbazargan
سه شنبه 04 مهر 1391, 09:23 صبح
دوستان اگه به جای دبل کلیک چک باکس داشته باشیم و بخواهیم اونایی که انتخاب شده ان به گریدویو دوم منتقل بشه باید جطور کار کرد؟

ali_habibi1384
سه شنبه 04 مهر 1391, 13:00 عصر
ميتوني با اين شرط اونهايي كه تيك خورده رو شناسايي كني:
if ((Boolean)datagrid.CurrentRow.Cells["select"].Value == true)
قبلش بايد يه ستون از نوع چك باكس درست كني در گريدت و براي اينكه همه اونايي كه تيك خوردن رو مد نظر داشته باشي بايد يه حلقه For بنويسي و كل گريد رو بخوني

titi1363
سه شنبه 04 مهر 1391, 16:51 عصر
amir4015 (http://barnamenevis.org/member.php?214732-amir4015)
و
ali_habibi1384 (http://barnamenevis.org/member.php?48789-ali_habibi1384)
مرسی.خیلی لطف کردین .