PDA

View Full Version : پیدا کردن شماره رکورد در DataGrid



سار
شنبه 18 آذر 1385, 15:57 عصر
اول اینکه من این مشکل را با VS 2003 دارم.
و دوم اینکه می خواهم شماره رکوردی را که روی DataGrid فعال است و یا با زدن دکمه Enter انتخاب می شود را بدست آورم.(شماره ی رکورد در جدول و یا مقدار کلید اصلی را).

ممکنه راهنمایی کنید.

karimi84
شنبه 18 آذر 1385, 16:57 عصر
می توانی از طریق curentrowindex کمک بگیری اگر در msdn جستجو کنی حتما پیدا میکنی امکان داره در همین سایت هم باشد

PC2st
شنبه 18 آذر 1385, 17:29 عصر
دو روش زیر رو در نظر بگیرید (البته ممکنه کسی از روشهای دیگری استفاده کنه):

1. استفاده از خاصیت e.ColumnIndex که ایندکس فیلد فعلی رو برمیگردونه
استفاده از خاصیت e.RowIndex که ایندکس رکورد فعلی رو برمیگردونه
هر دو خاصیت از نوع int و البته ReadOnly هستند.
(البته استفاده از پارامتر e در رویدادهائی مثل کلیک یا فشردن کلید یا ... امکان پذیر است)
که بصورت زیر میتونید ازشون استفاده کنید و به مقدار سلول فعلی دسترسی داشته باشید (منظور از سلول فعلی همان فیلدی از یک رکورد خاص است که توسط کاربر یا غیره درحالت انتخاب یا ویرایش یا ... قرار گرفته است):

dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value



2. یا میتوانید به صورت زیر برای دسترسی به سلول فعلی عمل کنید در صورتی که به پارامتر e دسترسی نداشتید یا ترجیح میدادید بصورت دیگری عمل نمائید:

استفاده از خاصیت dataGridView1.CurrentCell که سلول فعلی (فیلد فعلی از رکورد فعلی) را از نوع DataGridViewCell برمیگرداند.
برای مثال برای دسترسی به مقدار سلول فعلی بصورت زیر مینویسیم:

dataGridView1.CurrentCell.Value

البته از خاصیت dataGridView1.CurrentRow میتوان برای دسترسی به رکورد فعلی استفاده کرد که خروجی آن از نوع DataGridViewRow هستش.
مثلا در زیر به مقدار فیلد اول از رکورد فعلی دسترسی خواهیم داشت:

dataGridView1.CurrentRow.Cells[0].Value

سار
دوشنبه 20 آذر 1385, 09:12 صبح
با سپاس از هر دوی شما عزیزان.
متاسفانه من در اینجا به VS2003 دسترسی ندارم ولی تا به خونه برسم و تست کنم ممکنه به این سوال پاسخ بدید که :
ممکنه من در گرید رکوردهای فیلتر شده را داشته باشم.
آیا این شماره ی ایندکس رکورد فعال که حاصل می شود دقیقن همان شماره ی رکورد در جدول است؟ یا به ترتیب از 0 شروع شده و ادامه می یابد؟

hdv212
جمعه 24 آذر 1385, 23:11 عصر
با سلام .
بستگی داره شما Datagrid.DataSource رو با چی ست کرده باشی اگه اطلاعات فیلتر شده رو درون یک دیتاتیبل بریزی و دیتاگرید رو به اون بایند کنی بله شماره رکورد جاری دیتاگرید با شماره رکورد دیتاتیبل یکی هست .
موفق باشید