View Full Version : مشکل foreach در datagrid
M aJi D
پنج شنبه 18 فروردین 1390, 22:08 عصر
سلام .
ببخشید دوستان به تازگی برنامه نویسی توی C#.Net را شروع کردم به 1 مشکل برخوردم .
من دستوری توی Vb.Net بلد بودم که تمام آیتمهای datagrid را بررسی میکنه اما نمونشو توی C#پیدا نکردم.
دستور توی Vb.Net اینه :
Dim chkbox as checkbox
Dim oItem as DataGridItem
for each oItem in DataGrid1.items
chkbox = ctype(oItem.cells(10).controls(1),checkbox)
next
حالا نمیدونم چجوری باید همین دستورو توی C# بنویسم کسی میتونه نمونه ای بهم بگه که توی C# جواب بده؟
درمورد دستور هم باید بگم این دستور برای 1دونه datagrid نوشته شده که توی 1ستونش checkbox قرار دادم و میخوام با این دستور و با متغییر oItem توی datagrid بگرده و checkbox هارو چک کنم اگر تیک خورده بودن مقدار اون checkbox را بریزه توی متغیر chkbox
ممنون
میلاد قاضی پور
پنج شنبه 18 فروردین 1390, 22:48 عصر
نمونه زیاده برای این کار . ابتدا باید تمام چکباکس های دیتاگرید ویو رو با فالس مقدار دهی کنید چون مقدار اولیه چکباکس ها نال هست . شما به جای "آیتم"، در حلقه ی فوریچ سیشارپ باید از datagridviewrow row in datagridview1.rows استفاده کنید .
M aJi D
پنج شنبه 18 فروردین 1390, 23:11 عصر
نمونه زیاده برای این کار . ابتدا باید تمام چکباکس های دیتاگرید ویو رو با فالس مقدار دهی کنید چون مقدار اولیه چکباکس ها نال هست . شما به جای "آیتم"، در حلقه ی فوریچ سیشارپ باید از datagridviewrow row in datagridview1.rows استفاده کنید .
دوست عزیز من توی forech اینجوری مینویسم
foreach(datagridviewrow row in datagridview1.rows(
اما توی همون ابتدا ایراد میگیره و میگه datagridrow وجود نداره.
درضمن میشه در مورد ادامه مطلب هم توضیح بدید؟ بعد اینکه این for اجرا میشه با چه کدی checkboxهای تیک خورده را شناسایی و توی 1 متغییر بریزم؟
mmd2009
جمعه 19 فروردین 1390, 04:54 صبح
با سلام.
به اینجا (http://stackoverflow.com/questions/2332098/how-to-add-gridview-rows-to-a-datatable)یک مراجعه کنید شاید مشکلتون حل شد.
RIG000
جمعه 19 فروردین 1390, 06:24 صبح
دوست عزیز من توی forech اینجوری مینویسم
foreach(datagridviewrow row in datagridview1.rows(
اما توی همون ابتدا ایراد میگیره و میگه datagridrow وجود نداره.
درضمن میشه در مورد ادامه مطلب هم توضیح بدید؟ بعد اینکه این for اجرا میشه با چه کدی checkboxهای تیک خورده را شناسایی و توی 1 متغییر بریزم؟
از اول سوالتو نخوندم . اما اینو datagridviwrow ایرراد میگیره شاید بخاطر اینه که درست ننوشتیش . این شکلی >> DataGridViewRow
M aJi D
جمعه 19 فروردین 1390, 11:45 صبح
از اول سوالتو نخوندم . اما اینو datagridviwrow ایرراد میگیره شاید بخاطر اینه که درست ننوشتیش . این شکلی >> DataGridViewRow
نه دوست عزیز دیگه نوشتن را که غلط نمینویسم . توی C# اصلاً datagridview وجود نداره و datagridخالی داره و خاصیتهای موجود در اونم datagriditem و datagridcolumn هست اما هیچ کدوم کمک نمی کنه نمیدونم چیکار کنم.
من کد را به شکل زیر نوشتم :
DataGridItem oItem = default(DataGridItem);
CheckBox chkbox = default(CheckBox);
int RowId ;
foreach (object oItem_loopVariable in StudentGridView.Rows)
{
chkbox = (CheckBox)oItem.Cells[9].Controls[1];
}
اما وقتی اجرا میگیرم و 1کی از checkboxهارو تیک میزنم و دکمه اجرای foreach را زدم ارور زیر را میده
Object reference not set to an instance of an object.
RIG000
جمعه 19 فروردین 1390, 14:00 عصر
checkbox chkbox = default(checkbox);
DataGridItem oItem = default(DataGridItem);
foreach ( oItem in DataGrid1.items) {
chkbox = (checkbox)oItem.cells(10).controls(1);
}
میلاد قاضی پور
جمعه 19 فروردین 1390, 14:44 عصر
من از روی نمونه هایی که خودم نوشتم مثال زدم . اینم کدی که مستقیم از برنامه ام کپی کردم اینجا کاملا هم صحیحه و کار میکنه :
foreach (DataGridViewRow row in gridview.Rows)
{
if ((bool)row.Cells[0].Value == true)
funcDelete("delete from " + tablename + " where " + primarykey + "=" + row.Cells[1].Value);
}
M aJi D
شنبه 20 فروردین 1390, 16:56 عصر
من از روی نمونه هایی که خودم نوشتم مثال زدم . اینم کدی که مستقیم از برنامه ام کپی کردم اینجا کاملا هم صحیحه و کار میکنه :
foreach (DataGridViewRow row in gridview.Rows)
{
if ((bool)row.Cells[0].Value == true)
funcDelete("delete from " + tablename + " where " + primarykey + "=" + row.Cells[1].Value);
}
دوست عزیز باور کنید اصلاً DataGridRow نداره توی قسمت اول.
فقط DataGridItem داره و DataGridColumns .
ببینم باید توی قسمت usingها چیزی اضافه کنم تا توی اولین قسمت forech بتونم بنویسمDataGridRow؟
این دستورات توی C# نیست انگار هرچی زدم ارور داد
میلاد قاضی پور
پنج شنبه 25 فروردین 1390, 18:10 عصر
من گفتم دیتا گریدویو رو
shadi khanum
پنج شنبه 25 فروردین 1390, 18:33 عصر
DataGridViewRow هم تو VB هست و هم C# . فرقی هم ندارن. دستور forEach هم توی هر دو تا هست. ضمنا چه اصراری به استفاده از forEach دارین؟ از for استفاده کنید
M aJi D
یک شنبه 11 اردیبهشت 1390, 13:42 عصر
من گفتم دیتا گریدویو رو
فکر کنم فهمیدم چرا منو شما به توافق نمیرسیدیم . شرمنده دوست عزیز من برنامم تحت وب هست برای همین datagridview نداره حالا چیکار کنم؟
میلاد قاضی پور
دوشنبه 12 اردیبهشت 1390, 21:45 عصر
gridviewrow
ضمنا در تالار asp باید مطرح کنین .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.