PDA

View Full Version : ذخیره سطرهای پر شده در گرید ؟



نیما حتمی
شنبه 21 اسفند 1389, 09:36 صبح
با سلام
دوستان در این زمینه کلی جستجو کردم چیزی که بتونه مشکلمو حل کنه پیدا نکردم.
1-به محض کلیک یا به محض فوکوس در گرید یک سطر خالی در گرید ایجاد بشه و در حین ایجاد شدن سطر جدید شماره سطر رو هم در ستون ردیف(از 1 تا....)قرار بده
2-به محض رسیدن به آخرین ستون در سطر جدید اگر کاربر دکمه تب رو زد سطر جدید دیگری مانند اولی ایجاد شودو لا غیر.
3-وقتی دکمه ذخیره را زدیم سطرهای ایجاد شده در بانک ذخیره شوند.
قابل ذکر است گرید به بانک بایند نمی باشد

با تشکر

نیما حتمی
یک شنبه 22 اسفند 1389, 08:18 صبح
کسی نمی تونه کمکی کنه؟

morteza271
یک شنبه 22 اسفند 1389, 09:29 صبح
این کار رو خیلی راحت میتونین با دستور های زیر انجام بدین :

برای ایجاد سطر جدید :

DataGridView1.Rows.Add(1);

برای اینکه ستون اولش رو برابر تعداد سطرها بکنی :

DataGridView1.Rows[DataGridView1.Rows.Count].Cells[0].Value = DataGridView1.Rows.Count;

برای ذخیره هم باید از دو متد CellBeginEdit و CellEndEdit گریویو استفاده کنید.البته گرید ویو متدهای زیادی داره که میتونین ازشون اسفاده کنین.
سوالی بود در خدمتم.
موفق باشید

نیما حتمی
یک شنبه 22 اسفند 1389, 11:47 صبح
خیلی ممنونم از جوابی که دادین.دوست عزیز کدی رو که دادین نوشتم ولی پیغام زیر رو می ده.این کد رو در رویداد کلیک (جدید در بالای صفحه)نوشتم.ممنونم کمکم کنی

نیما حتمی
یک شنبه 22 اسفند 1389, 11:57 صبح
67432http://barnamenevis.org/images/misc/pencil.png

raminsoft
یک شنبه 22 اسفند 1389, 12:43 عصر
برای اولین بار مقدار DataGridView1.Rows.Count برابر اون چیزی که شما میخواهید نیست ، باید اول چک کنی ، اگر این عبارت مقدار داشت ، بعد دستور رو بنویسی مثلا :

if (DataGridView1.Rows.Count>0)
DataGridView1.Rows[DataGridView1.Rows.Count].Cells[0].Value = DataGridView1.Rows.Count;
else
DataGridView1.Rows[0]=1;

morteza271
یک شنبه 22 اسفند 1389, 14:49 عصر
همونطور که دوستمون گفتن مشکل از ایندکسی هست که به همون کد دادین هست.
چک کنید حتما درست میشه.
موفق باشید

نیما حتمی
یک شنبه 22 اسفند 1389, 15:55 عصر
نه بچه ها درست نشد همون پیغام اولیرو می ده

shadi khanum
یک شنبه 22 اسفند 1389, 22:58 عصر
این که error میده درست چون ایندکس مشکل داره.ببین شما وقتی Add رو میزنی یه ردیف Add میکنه و مثلا rows.count =1 میشه، ولی ایندکس اون ردیف 1 نیست و 0. یعنی دستورتون باید اینجوری تغییر کنه
if (DataGridView1.Rows.Count>0)
DataGridView1.Rows[DataGridView1.Rows.Count-1].Cells[0].Value = DataGridView1.Rows.Count;
else
DataGridView1.Rows[0]=1;

نیما حتمی
دوشنبه 23 اسفند 1389, 08:20 صبح
ممنونم از شما دوست محترم.
از DataGridView1.Rows[0]=1 ایراد میگیره؟چرا؟
Error 25 Property or indexer 'System.Windows.Forms.DataGridViewRowCollection.th is[int]' cannot be assigned to -- it is read only F:\Total\Total\Emissiondouc.cs 77 17 Total
Error 26 Cannot implicitly convert type 'int' to 'System.Windows.Forms.DataGridViewRow' F:\Total\Total\Emissiondouc.cs 77 40 Total

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

نیما حتمی
دوشنبه 23 اسفند 1389, 08:22 صبح
چطور بهش بگم به محض رسیدن به ستون آخر و زدن تب یه سطر دیگه مثل قبلی ایجاد کنه؟