PDA

View Full Version : سوال: چگونه در gridview به فیلدی از سطر انتخاب شده دسترسی پیدا کنیم



elahe1393
یک شنبه 06 مهر 1393, 14:55 عصر
من یک gridview دارم که می خوام با توجه به سطری که انتخاب شده آی دی گزارشم که یک کلید خارجی در datatable هست رو بدست بیارم تا بتونم برحسب اون آی دی یک سری عملیات انجام بدم حالا می خوام نحوه دریافت این فیلد رو کدنویسی کنم راه حل چیه؟ یه نمونه کد نوشتم ولی خطا میده
reportID = grdReport.SelectedRows[0].Cells[0].Value.ToString();
این آی دی تو جدول اولین ستون هست

elahe1393
یک شنبه 06 مهر 1393, 15:02 عصر
آخ آخ آخ ببخشید قبل از اینکه جستجو کنم تاپیک زدم به جواب رسیدم
reportID = grdReport.SelectedRows[0].Cells["ReportID"].Value.ToString();
باید یه همچین چیزی بنویسم
فقط چرا وقتی ایندکس گذاشتم به جواب نرسیدم چون این فیلد در همون ایندکس صفر هست؟!!!!

دلتنگ اسمان
یک شنبه 06 مهر 1393, 16:53 عصر
سلام
با این کد شماره سطر گرید رو بدست بیار :

int row;
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
row = e.RowIndex;
}
و بعد با این مقدار رو بدست بیار :

reportID = dataGridView1.SelectedRows[row].Cells["ReportID"].Value.ToString();

danialafshari
یک شنبه 06 مهر 1393, 16:54 عصر
int ID;

ID = (
int)dataGridView1[0, dataGridView1.CurrentRow.Index].Value;



MessageBox.Show(ID.ToString());

elahe1393
دوشنبه 07 مهر 1393, 14:56 عصر
الان همون تغییراتی که گفته شد رو دادم ولی به این خطا بر می خورم گرید پر میشه ولی وقتی میخوام برحسب سطر انتخاب شده عملیاتی انجام بده این خطا نمایش داده میشه مشکل چیه؟
124023

دلتنگ اسمان
دوشنبه 07 مهر 1393, 18:44 عصر
الان همون تغییراتی که گفته شد رو دادم ولی به این خطا بر می خورم گرید پر میشه ولی وقتی میخوام برحسب سطر انتخاب شده عملیاتی انجام بده این خطا نمایش داده میشه مشکل چیه؟


row = e.RowIndex; رو تو چه رویدادی نوشتی؟. اگه دقت کنی میبینی که توی رویداد dataGridView1_RowEnter مقدار row بدست میاد و هر رویداد دیگه ای خواستی میتونی از اون استفاده کنی.

elahe1393
سه شنبه 08 مهر 1393, 09:08 صبح
اول کل پردازش و عملیاتمو تو همون رویداد dataGridView1_RowEnter نوشتم بعد گفتم شاید به این دلیل هست که خطا میده مجدد جدا کردم اومدم کد row = e.RowIndex; تو رویداد dataGridView1_RowEnter نوشتم و توی رویداد کلیک یه دکمه عملیاتمو نوشتم و ازش استفاده کردم ولی بازم همین خطارو میده!!!
توی selectedRow توی item و list که چک میکنم count یک هست و بعد داخل cell هم چون چهار تا ستون در گرید دارم count چهار هست ولی همش همین خطا رو میده نمیدونم!!!

hamid_hr
سه شنبه 08 مهر 1393, 09:14 صبح
اینطوری بنویسین تست کنین

dgv["ReportID", row].Value.ToString();

elahe1393
سه شنبه 08 مهر 1393, 09:41 صبح
مرسی جواب گرفتم :لبخند: