PDA

View Full Version : حذف کردن یک سطر از دیتا گرید



somayekhezri
یک شنبه 09 بهمن 1390, 22:43 عصر
من یه datagridview دارم که یه datagridviewbuttomcolum با تکست حذف گذاشتم.

میخوام با زدن دکمه هر سطر اون سطر از گریدم حذف بشه.(البته این حذف حالت نمادین داره،یعنی فقط میخوام از لحاظ ظاهری فقط از گریدم حذف بشه)

باید چه کدی بزنم؟

ممنون

crazy_1892
یک شنبه 09 بهمن 1390, 23:52 عصر
یک ستون از نوع button قرار بده و در رویداد cellmouseclick ان گرید برای آن ستون قرار بده از سطر جاری را حذف کنه ولی دیتا بیس را update نکن

somayekhezri
دوشنبه 10 بهمن 1390, 07:46 صبح
ممنون ،1-اما اگه ستون های گرید رو با کد نوشته باشم،نمی دونم رویداد cellmouseclickرو از کجا بیارم؟



DataGridViewButtonColumn dg = new DataGridViewButtonColumn();
dg.HeaderText = "حذف";
dg.Text = "حذف";
dg.UseColumnTextForButtonValue = true;
dg.Width = 50;
selectunitdataGridView.Columns.Add(dg);


2-این کدی که میگید فقط از گرید حذف کن چه طوریه؟

ممنون

modern_amin
دوشنبه 10 بهمن 1390, 09:02 صبح
تو کلیک دیتاگرید کد زیر رو بنویس
DataGridView_tashih.Rows.Remove(DataGridView_tashi h.CurrentRow);

ali_habibi1384
دوشنبه 10 بهمن 1390, 09:45 صبح
من یه datagridview دارم که یه datagridviewbuttomcolum با تکست حذف گذاشتم.

میخوام با زدن دکمه هر سطر اون سطر از گریدم حذف بشه.(البته این حذف حالت نمادین داره،یعنی فقط میخوام از لحاظ ظاهری فقط از گریدم حذف بشه)

باید چه کدی بزنم؟

ممنون
منظورت اينه كه سرچ(جستجو) كني ؟ اطلاعات جدولت فيلتر بشه درسته؟

somayekhezri
دوشنبه 10 بهمن 1390, 10:46 صبح
نه نمی خوام search کنم.این عکس رو ببینید:
81717
تو گرید ویوی پایین میخوام اگه درس انتخابی اشتباه بوده،قبل از این که ثبت رو بزنه از گرید بتونه حذف بکنه(صرفا از گریده حذف من)

ممنون

modern_amin
دوشنبه 10 بهمن 1390, 11:14 صبح
مشکل کجاست؟
.
اگر میخواهید سطر رو حذف کنید
DataGridView_tashih.Rows.Remove(DataGridView_tashi h.CurrentRow);

اگر میخواهید اطلاعات رو کامل حذف کنید باید از دیتابیس پاک کنید و دوباره لود کنید ویا روش های دیگه
درضمن اگر کنار هر سطر چک باکس بزارید که کاربر چندین سطر رو همزمان پاک کنه برنامه زیباتر میشه

ali_habibi1384
دوشنبه 10 بهمن 1390, 11:33 صبح
فهميدم . شما ميخواي حالت انتقال داشته باشي. بالايي ها رو بفرستي پايين باز اگه خواستي پاييني هارو بفرستي بالا(گريد بالا).
براي حذف كاري كه modern گفت انجام بده .اما توي ديتابيس اين حذف ها رو اعمال نكن.

modern_amin
دوشنبه 10 بهمن 1390, 11:55 صبح
اطلاعات رو از تو داینیتاگرید1 بریز تو 2 و بعد از یک پاک کن
کافی مثلا ستون 1 دیتاگرید 1 رو با ستون 1دیتاگرید2 مساوی کنی
.
من تو یکی از پروژه هام اینکارو کردم
.
private void DataGridView_paye_DoubleClick(object sender, EventArgs e)
{
if (DataGridView_paye.Rows.Count > 0)
{
int gg = 0;
gg = DataGridView_payeKul.Rows.Count;
DataGridView_payeKul.Rows.Add(1);
DataGridView_payeKul.Rows[gg].Cells["name"].Value = DataGridView_paye.CurrentRow.Cells["name"].Value.ToString();
DataGridView_payeKul.Rows[gg].Cells["identity"].Value = DataGridView_paye.CurrentRow.Cells["identity"].Value.ToString();
DataGridView_paye.Rows.Remove(DataGridView_paye.Cu rrentRow);
}
else
{
ECP.PersianMessageBox.PersianMessageBox.Show("هیچ پایه تحصیلی برای انتخاب وجود ندارد", "", ECP.PersianMessageBox.PersianMessageBox.Buttons.OK , ECP.PersianMessageBox.PersianMessageBox.Icon.Infor mation, ECP.PersianMessageBox.PersianMessageBox.DefaultBut ton.Button1, false, "");
}
}

modern_amin
دوشنبه 10 بهمن 1390, 12:46 عصر
توجه : من برای این کل تابع رو میندازم تا شما رویدادش و ببینید
برای فهمیدن اینکه کدوم ستون رو کلیک کرده مثلا من میخام اگر رو ستونی که از نوع چک باس کلیک کردم ، چک باکسم کلیک بخوره و رنگش تغییر کنه
این کد رو خودتون تغییر بدید
.
private void DataGridView_tashih_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (DataGridView_tashih.Rows.Count > 0 && lb_9.Text == "tashih" || lb_9.Text == "sabtenomre")
{
if (e.ColumnIndex == DataGridView_tashih.Columns["entekhab"].Index)
{
bool bb = false;
bb = Convert.ToBoolean(DataGridView_tashih.CurrentRow.C ells["entekhab"].Value);

if (bb == false)
{
DataGridView_tashih.CurrentRow.Cells["entekhab"].Value = true;
DataGridView_tashih.CurrentRow.Cells["entekhab"].Selected = false;
DataGridView_tashih.CurrentRow.Cells["name"].Style.BackColor = Color.Yellow;
DataGridView_tashih.CurrentRow.Cells["family"].Style.BackColor = Color.Yellow;
}
else
{
DataGridView_tashih.CurrentRow.Cells["entekhab"].Value = false;
DataGridView_tashih.CurrentRow.Cells["entekhab"].Selected = false;
DataGridView_tashih.CurrentRow.Cells["name"].Style.BackColor = Color.White;
DataGridView_tashih.CurrentRow.Cells["family"].Style.BackColor = Color.White;
}
}
}
}
catch (Exception ex)
{
ECP.PersianMessageBox.PersianMessageBox.Show(ex.Me ssage, "DataGridView_tashih_CellClickپيغام", ECP.PersianMessageBox.PersianMessageBox.Buttons.OK , ECP.PersianMessageBox.PersianMessageBox.Icon.Warni ng, ECP.PersianMessageBox.PersianMessageBox.DefaultBut ton.Button1, false, "");
}
}

modern_amin
دوشنبه 10 بهمن 1390, 12:50 عصر
در ضمن تو قسمت event اجزا میتونی اونارو پیدا کنید