PDA

View Full Version : مشکل با حلقه for برای ثبت موقت داده در گرید



boysilent
چهارشنبه 05 مهر 1391, 14:38 عصر
سلام دوستان من میخوام طی یک حلقه اطلاغات رو وارد کنم///یعنی وقتی i=0 بود سطر اول و ....به همین ترتیب همه سطر هارو؟؟؟
ااین کد رو نوشتم ولی فقط یه سطر رو پر میکنه؟؟؟
int i = 0;
for (i=0; i < dataGridView1.Rows.Count; i++)
{
if (this.dataGridView1.Rows[i].Cells[i].Value == null)
{ this.dataGridView1.Rows[i].Cells[i].Value = "1"; }

Mahmoud.Afrad
چهارشنبه 05 مهر 1391, 15:40 عصر
i در کد شما نشان دهنده سطر هست نه ستون پس Cells[i] باید اصلاح بشه.

boysilent
چهارشنبه 05 مهر 1391, 16:05 عصر
ممنونولی باز هم نشد//من میخوام هر بار که روی دکمه کلیک کردم رو باتن یه سطر اضافه بشه؟از نوع تعریف متغیر i نیست؟

Mahmoud Zaad
چهارشنبه 05 مهر 1391, 17:12 عصر
ممنونولی باز هم نشد//من میخوام هر بار که روی دکمه کلیک کردم رو باتن یه سطر اضافه بشه؟از نوع تعریف متغیر i نیست؟


سلام
اگه اصل کاری که می خواید انجام بدید رو بگید بهتر میشه راهنمایی کرد، شما توی اون حلقه گفتید به تعداد سطرهای دیتاگریدویو یه کاری انجام بشه خب زمان لود فرم وقتی ستون ها رو اضافه کرده باشید فقط یک سطر دارید و کد شما هم اون یه سطر رو مقدار دهی می کنه.

boysilent
پنج شنبه 06 مهر 1391, 07:09 صبح
چشم/
دوستان من مسخوام با هز کلیک بر بوی دکمه اضا فه کردن یه سری اطلاعات در سطر بعدی (خالی) درج بشه //من میخواستم از متغییر استاتیک استفتده کنم ولی فک کنم ویژال نداره یا اگه داره من نمیدونم این شد که یه سطر اضافه میشه ولی چون متغییر استاتیک نیست فقط یه بار اجرا میشه
متغییر i ثابت نمیمونه؟؟؟
int i=0;
if (this.dataGridView1.Rows[i].Cells[2].Value == null)
{


this.dataGridView1.Rows[i].Cells[2].Value = "1";
i++;
}

ali_habibi1384
پنج شنبه 06 مهر 1391, 07:20 صبح
چشم/
دوستان من مسخوام با هز کلیک بر بوی دکمه اضا فه کردن یه سری اطلاعات در سطر بعدی (خالی) درج بشه //من میخواستم از متغییر استاتیک استفتده کنم ولی فک کنم ویژال نداره یا اگه داره من نمیدونم این شد که یه سطر اضافه میشه ولی چون متغییر استاتیک نیست فقط یه بار اجرا میشه
متغییر i ثابت نمیمونه؟؟؟
int i=0;
if (this.dataGridView1.Rows[i].Cells[2].Value == null)
{


this.dataGridView1.Rows[i].Cells[2].Value = "1";
i++;
}
با توجه به توضيحي كه داديد كدي كه شما نوشتيد اصلا چيزي رو توي گريد درج نميكنه فقط چك ميكننه اگر فلان سلول تهي بود يه مقدار 1 توش ميريزه. حال آنكه شما ميبايست قبل از انجام اين دستورات به گريدتون سطر رو اضافه ميكرديد.كه دو روش داره:
يكي اينكه اگر ديتاگريدتون اطلاعاتش از ديتاتيبل مياد بنابراين شما ميبايست ديتا تيبل رو يك سطر بهش اضافه كنيد تا در گريد نمايش داده بشه:datatable.rows.add(...);
و اگر گريد به ديتا تيبل متصل نيست به گريد يك سطر اضافه كنيد.

boysilent
پنج شنبه 06 مهر 1391, 12:47 عصر
چیزی متوجه نشدم ؟ دوست عزیز من میخوام بصورت موقت داده رو ارسال کنم به دیتا گرید همین؟

\\\\\\\\\اصلا چيزي رو توي گريد درج نميكنه فقط چك ميكننه اگر فلان سلول تهي بود يه مقدار 1 توش ميريزه\\\\\\\\\\\\:متعجب:
:متعجب:

Mahmoud Zaad
پنج شنبه 06 مهر 1391, 12:52 عصر
فرض کنید دیتاگرید شما 2 تا ستون داره که ستون ها هم از قبل ایجاد شدن، همچنین شما 2 تا تکست باکس دارید که می خواید اطلاعات رو از اونها بگیرید. خب:
datagridview1.Rows.Add(textBox1.Text, textBox2.Text);
هر بار که روی دکمه بزنید یه سطر جدید به دیتاگریدویو اضافه میشه.

boysilent
پنج شنبه 06 مهر 1391, 13:06 عصر
این خطارو میده؟؟؟
Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.

Mahmoud Zaad
پنج شنبه 06 مهر 1391, 13:35 عصر
خب دیتاگریدویو بایند شده و شما نمی تونید به صورت دستی بهش اطلاعات اضافه کنید