PDA

View Full Version : برگرداندن محتویات یک سلول Gridview بدون دسترسی به دیتاست



m0rteza
دوشنبه 21 مرداد 1387, 16:13 عصر
من اطلاعات یک گرید رو با dataview فیلتر کردم (مثلا از 20 سطر 3 سطر رو نمایش دادیم)
حالا من برای اینکه محتویات سلول رو بدست بیارم و به دلیل اینکه به dataset دسترسی ندارم از کد زیر استفاده کردم .



DataTable Dt = (DataTable)DGV.DataSource;
.KeyValue = Dt.Rows[DGV.CurrentRow.Index][KeyField].ToString();


حالا مشکل چیه ؟ مشکل اینجاست که بعد از جست جو سطری که قبلا در positionمثلا 19 بود و الان در سطر 3 نمایش داده میشه و DGV.CurrentRow.Index به سطری اشاره می کنه که قبلا در سطر 3 بود . به همین دلیل اطلاعات اشتباه برگردونده میشه.
چطور میشه بدون وابستگی به dataset سر و ستون جاری رو خوند

ASKaffash
دوشنبه 21 مرداد 1387, 16:25 عصر
سلام
اینطوری :


string s = this.dataGridView1[2, this.dataGridView1.SelectedRows[0].Index].Value.ToString();

m0rteza
دوشنبه 21 مرداد 1387, 16:47 عصر
خیلی کد قشنگی زدی و آفرین .
چرا بجای 2 اسم فیلد رو مینویسم خطا می گیره ؟
SelectedRows[0] اون 0 یعنی چی ؟

Moslemu
دوشنبه 21 مرداد 1387, 18:46 عصر
سلام.
اگه اطلاعاتتون دقیقاً توی dataGridView نمایش داده می شن می تونید از این کد استفاده کنید؛ نه؟!


dataGridView1.Rows[rowIndex].Cells[cellIndex].Value.ToString();

اگر که اطلاعاتتون از Query گرفته شده هم می تونید از dataView استفاده کنید.

unique1984
دوشنبه 21 مرداد 1387, 18:55 عصر
سلام

چرا بجای 2 اسم فیلد رو مینویسم خطا می گیره ؟
SelectedRows[0] اون 0 یعنی چی ؟

اون 2 شماره ستون datagridview هست. لازم به ذکره که شماره سطر ها و ستون ها در datagridvies از 0 شروع می شه. پس 2 اینجا یعنی : ستون سوم دیتاگرید ویو.
دیتاگریدویو یه خاصیتی به نام multiselect داره که اگه true باشه ، می تونیم چندین سطر از گریدو انتخاب کنیم در غیر اینصورت فقط اجازه انتخاب یه سطر رو خواهیم داشت.
حالا در SelectedRows[0] اگه multiselect شما true باشه، اولین سطری که انتخاب شده رو در نظر می گیره و اگر false باشه همون سطر جاری که طبیعتا چون یه دونه هست ( ایندکسشم صفره) رو در نظر می گیره.
در مجموع کد ASKaffash به این معنیه:مقدار ستون سوم از اولین سطر انتخاب شده رو در متغیر s که از نوع string هست، بریز.

ardavan_ejn
شنبه 08 خرداد 1389, 13:43 عصر
;()Code = dgvPersonels.SelectedRows[0].Cells[1].Value.ToString


با سلام ، براي گرفتن يك فيلد انتخاب شده از DataGridView از اين كد استفاده كنيد.

ardavan_ejn
شنبه 08 خرداد 1389, 13:46 عصر
[SelectedRows[0 سطر انتخابي
[Cells[1 ستوني كه فيلد مورد نظر مي خواهد از آن استخراج شود.