ورود

View Full Version : سوال: ردیف شدن رکورد ها



viper2009
یک شنبه 05 مهر 1388, 21:52 عصر
دوستان
چطور می تونم شماره ردیف هایی که در گریدم که از بانک لود شده وقتی حذف می کنم دوباره شماره ها بترتیب بشوند؟

مثلاً من 10 سطر دارم سطر 5 رو حذف می کنم می خوام اتوماتیک رکورد 6 بشود 5 و جمعاً 9 سطر شود؟

fazelm
یک شنبه 05 مهر 1388, 22:11 عصر
یه حلقه تکرار for بذار از صفر تا تعداد خط ها و خانه ها رو از یک تا تعداد خطها شماره گذاری کنه

اگه تو کد نویسیش مشکل داشتی بگو

شاید هم راه حل دیگه هم داشته باشه

viper2009
یک شنبه 05 مهر 1388, 22:30 عصر
یه حلقه تکرار for بذار از صفر تا تعداد خط ها و خانه ها رو از یک تا تعداد خطها شماره گذاری کنه

اگه تو کد نویسیش مشکل داشتی بگو

شاید هم راه حل دیگه هم داشته باشه

اره تو کد مشکل دارم
اگه لطف کنی ...................

fazelm
یک شنبه 05 مهر 1388, 22:38 عصر
من میگم خودت سرهمش کن
کد بدست آوردن تعداد سطرها برای for :

datagridview1.rows.count.tostring

و برای مقدار دهی یک خانه مشخص :

datagridview1.rows.item(ROW XX).cells(CELL XX).value
در کد بالا ROW XX شماره سطر هست و CELL XX شماره ستون

در ضمن باید یادآور بشم که شماره سطر ها مثل لیست باکس از صفر شروع میشه
اگه بازم کمکی خواستی در خدمتم

fazelm
یک شنبه 05 مهر 1388, 22:42 عصر
یه چیزی توی این مایه ها میشه :


for i as varianttype = 0 to datagridview1.rows.count.tostring - 1
datagridview1.rows.item(i).cells(0).value=i
next i


ببخشید یه جای کدها اشتباه کرده بودم ولی الان ویرایش کردم درست شد
موفق باشید

viper2009
یک شنبه 05 مهر 1388, 22:50 عصر
ممنون ولی اطلاعات ردیف از دیتابیس در گرید لود میشه
مشکل اصلی از دیتابیس شروع میشه.
وقتی مثلاً سطر پنجم حذف میشه 9 سطر میشه ولی همون شماره ها باقی می مونه فقط شماره 5 حذف شده.

fazelm
یک شنبه 05 مهر 1388, 22:53 عصر
ممنون ولی اطلاعات ردیف از دیتابیس در گرید لود میشه
مشکل اصلی از دیتابیس شروع میشه.
وقتی مثلاً سطر پنجم حذف میشه 9 سطر میشه ولی همون شماره ها باقی می مونه فقط شماره 5 حذف شده.

وقتی از کد بالا استفاده کنی شماره ردیف هات به شکل زیر میشه وقتی 9 سطر هست :
1
2
3
4
5
6
7
8
9

مگه غیرازاین می خوای ؟؟

viper2009
یک شنبه 05 مهر 1388, 23:17 عصر
وقتی از کد بالا استفاده کنی شماره ردیف هات به شکل زیر میشه وقتی 9 سطر هست :
1
2
3
4
5
6
7
8
9

مگه غیرازاین می خوای ؟؟

بله درسته
ایا دستور شما در دیتا بیس تغییری که من می خوام رو اعمال می کنه؟

fazelm
یک شنبه 05 مهر 1388, 23:56 عصر
بله درسته
ایا دستور شما در دیتا بیس تغییری که من می خوام رو اعمال می کنه؟

بله .

viper2009
دوشنبه 06 مهر 1388, 00:01 صبح
ببین می تونی این کد رو با یک نمونه برام ضمیمه کنی؟
ممنون می شم

DoDoklak
دوشنبه 06 مهر 1388, 08:42 صبح
اینکه فیلدهای اصلی رو تغییر بدید اصلا فکر خوبی نیست
برای اینکار باید جدولتو ردیف گزاری کنی
C#

private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
SolidBrush b = new SolidBrush(dataGridView1.RowHeadersDefaultCellStyl e.ForeColor);
e.Graphics.DrawString("ردیف", dataGridView1.DefaultCellStyle.Font,b, dataGridView1.Size.Width - 40, 5);
e.Graphics.DrawString(e.RowIndex.ToString(), dataGridView1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + dataGridView1.Size.Width - 45, e.RowBounds.Location.Y);

}

VB.NET


Private Sub DGV_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEvent Args) Handles DGV1.RowPostPaint
Using b As SolidBrush = New SolidBrush(DGV1.RowHeadersDefaultCellStyle.ForeCol or)
e.Graphics.DrawString("رديف", DGV1.DefaultCellStyle.Font, b, DGV1.Size.Width - 40, 5)
e.Graphics.DrawString(e.RowIndex + 1, DGV1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + DGV1.Size.Width - 40, e.RowBounds.Location.Y)
End Using
end sub


dgv1 همون Datagridview هستش
باید این سورسو رو تو رویداد RowPostPaint مربوط به Datagridview قرار بدی
به تصویر زیر نگاه کن چطوری ردیف رو قرار میده(بدون دستکاری فیلدهای بانک اطلاعاتی)

http://mihanupload.com/images/54obhz2r2gzear4jnxbr.jpg

viper2009
دوشنبه 06 مهر 1388, 09:21 صبح
ممنون
خوبه خودم این کارو کردم ولی موقعی که به چپ و راست اسکرول می کنم این اعداد حرکت می کنند.

DoDoklak
دوشنبه 06 مهر 1388, 09:45 صبح
اگر از

dataGridView1.Size.Width -40
برای حالت right To Left=Yes
و

dataGridView1.Size.Width +10
برای حالت right To Left=NO

استفاده کنی دچار مشکل نمیشی حتی با تغییر سایز گرید یا اسکرولش