PDA

View Full Version : از کجا بفهمیم چندمین رکورد datagrid انتخاب شده؟(خواهش می کنم جواب بدین.ضروریه)



nokhod
یک شنبه 20 آذر 1384, 14:25 عصر
سلام.

فرض کنید یکی از دکمه های درون یک DataGrid کلیک می شود. از کجا بفهمیم که این دکمه مربوط به چندمین رکورد DataGrid می باشد؟(این دکمه در چندمین رکورد کلیک شده)

Babak-Aghili
یک شنبه 20 آذر 1384, 14:58 عصر
................

اَرژنگ
یک شنبه 20 آذر 1384, 15:42 عصر
در
DataGrid.CurrentCellChanged
از DataGrid.CurrentRowIndex
بدست میارید. من ۲۰۰۳ را ندارم، وگرنه امتحان میکردم جواب کامل را میفرستادم.

nokhod
دوشنبه 21 آذر 1384, 13:11 عصر
اولندش این چه طرز جواب دادنه؟ نمی تونین کامل توضیح بدین؟

دومندش همچین Property ای ندارد.

hackerboy
دوشنبه 21 آذر 1384, 21:35 عصر
سلام دوست عزیز.
بسیار آسان. در رویداد CellContentClicked باید اینکار ها را انجام دهید:
ابتدا مشخص کنید که button در کدام ستون است.
مثلاً اگر در ستون سوم است، index ستون 2 میشود (ایندکس از 0 شروع شده)
حال باید اینطوری بنویسید:


if(e.ColumnIndex == dataGridView1.Columns[2].Index)

{
MessageBox.Show(e.RowIndex.ToString());
}



که همون طور که می‌بینی ابتدا میبینه که در ستون button باشه یا نه (من در ستون 3 در نظر گرفتم) در نتیجه در یک مسج باکس شماره سطرو نشون میده
:چشمک:

امیدوارم موفق باشی

nokhod
سه شنبه 22 آذر 1384, 08:43 صبح
این ماله 2005 هست. نه؟

hackerboy
سه شنبه 22 آذر 1384, 17:11 عصر
نه. در دات نت 2005 هم e.RowIndex بود! (فکر می‌کنم!)

nokhod
سه شنبه 22 آذر 1384, 17:50 عصر
این e از کجا اومده؟

Edit Command یا Cancel Command یا ... ؟

مطهر
سه شنبه 22 آذر 1384, 20:51 عصر
اینقدر از خودت فکر در نَوکن(خودم را میگم)
بابا ای ول زودتر می گفتی برای 2005 می خوای
از این استفاده کن هرجا که خواستی <نیاز به e هم نداری>

int ID = dataGridView1.CurrentRow.Index;
2003

int ID=dataGrid1.CurrentRowIndex

nokhod
پنج شنبه 24 آذر 1384, 11:39 صبح
بابا به جان خودم تو 2003 همچین Property ای ندارم.
شما یک نگاهی تو یکیه خودت بنداز شاید فقط تو داری.

hackerboy
پنج شنبه 24 آذر 1384, 14:01 عصر
ببین! e مخصوص استفاده در رویداد CellContentClick هستا!

مطهر
پنج شنبه 24 آذر 1384, 18:44 عصر
بابا به جان خودم تو 2003 همچین Property ای ندارم.
شما یک نگاهی تو یکیه خودت بنداز شاید فقط تو داری.
با من هستی؟؟
ببین من دقیقاً کد را کپی کردم اینجا
مشکل از توست
حتماً داری خارج از method کدت را می نویسی

void Test()
{
int ID=dataGrid1.CurrentRowIndex
}

مطهر
پنج شنبه 24 آذر 1384, 18:53 عصر
اینو ببین
می بینم که......

nokhod
شنبه 26 آذر 1384, 08:44 صبح
بابا بگین تو 2003 همچین Propertyای (CurrentRowIndex) وجود داره یا نه؟
تویکیه من نیست. شما اینا رو از کجا میارین؟ ها؟ ها؟ ها؟

این فایل زیپ چیه؟

مطهر
شنبه 26 آذر 1384, 13:11 عصر
بابا بگین تو 2003 همچین Propertyای (CurrentRowIndex) وجود داره یا نه؟
تویکیه من نیست. شما اینا رو از کجا میارین؟ ها؟ ها؟ ها؟

این فایل زیپ چیه؟
ببین .... خوبی..
فایل را دانلود کن ... یه مثال برات نوشته ام

nokhod
شنبه 26 آذر 1384, 17:26 عصر
حالا فهمیدم مشکل من و شما چیه:من تو WebBase می گویم و شما در WindowsBase.
خوب حالا تو WebBase بلدین؟

مطهر
شنبه 26 آذر 1384, 17:34 عصر
خوب حالا تو WebBase بلدین؟
نه خیر
خیلی سرکاری بی مزه ای بود
اول نحوه ی سوال کردن را یاد بگیر بعد سوال مطرح کن
ضمناً این سوال را می بایست تو بخش مربوطه مطرح می کرده باشی

hackerboy
شنبه 26 آذر 1384, 20:25 عصر
به نظر میرسه بد سرکار هستیم.
در بخش ASP.NET مطرح نمایید

zarzari
شنبه 11 اسفند 1386, 16:52 عصر
با عرض سلام خدمت همه دوستان
من یه مشکلی با DataGrid.CurrentRowIndex دارم ، وقتی در حین اجرا روی تیتر ستون خاصی کلیک میکنم تا grid بر اساس اون ستون مرتب بشه ، windows application ، دیگه CurrentRowIndex جواب نمیده و شماره سطر قبل از مرتب کردن رو برمیگردونه ، نه شماره سطر فعلی رو !!!
چیکارش کنم ؟
ممنون از کمکتون.

tthenry14plus
جمعه 17 اسفند 1386, 00:46 صبح
سوال واضح نیست، آخه هنگام مرتب شدن دیتا گرید، شماره سطر و ستونی که روش کلیک کردید که تغییر نمیکنه؟؟؟؟؟؟؟؟؟؟؟

danial82
جمعه 17 اسفند 1386, 08:22 صبح
هنگامی که برای مرتب کردن روی سرستونها کلیک میکنی مقدار 1- در CurrentRowIndex قرار میگیره

tthenry14plus
شنبه 18 اسفند 1386, 01:09 صبح
من چنین حالتی ندارم.
پس از مرتب شدن هم دقیقا همان ستونی که انتخاب شده را برمی گرداند.


MessageBox.Show(dataGridView1.CurrentRow.Index.ToS tring());


اگر پس از مرتب شدن سلولی که کلیک شده بود Deselect میشه یه بحث دیگس.

zarzari
یک شنبه 19 اسفند 1386, 13:04 عصر
سلام و ممنون از جوابتون ،
تا اینجای کار درست ،مقدار 1- در CurrentRowIndex قرار میگیره ، اما بعد که کاربر می خواد از این لیست مرتب شده ، یک سطرش رو انتخاب کنه ، من روی evente زیر : DoubleClick از گریدم ، CurrentRowIndex رو می خونم ، اما ردیف قبل ا زمرتب شدن رو برمی گردونه . نمی دونم چرا .
لطفا کمکم کنید . در ضمن 2003 کار میکنم .

tthenry14plus
دوشنبه 20 اسفند 1386, 01:59 صبح
خوب از اول میگفتی، چرا از CurrentRowIndex استفاده می کنی ؟
با این Event کار کن:



privatevoid dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}

یا


privatevoid dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.RowIndex.ToString());
}


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

MOSTAFANAVVAB
دوشنبه 20 اسفند 1386, 07:47 صبح
بابا به جان خودم تو 2003 همچین Property ای ندارم.
شما یک نگاهی تو یکیه خودت بنداز شاید فقط تو داری.

ببین دوست عزیز من نمی دونم ولی هر چی هست فکر کنم مشکلت رو دیتا سورس حل کنه _
ببین در کامپیوتر یا بهتر بگم در برنامه نویسی مشکل تر ین طراحی ها از نظر ما ساده ترین جوابها رو دارند و چیزهایی که ما فکر میکنیم که ساده و پیش پا افتادست سخترین جوابهارو
راستی یک تجربهمهم من منهم مثل شما یک مدت با این دیتا گرید مشکل پیدا کرده بودم انقدر مشکلم حاد بود که رئیسم شاکی شده بود خیلی کتاب خوندم ولی چیز زیادی دستگیرم نشد ..ولی یکشب به نیت حل مشکلم زیارت عاشورا را خواندم خدا جواب رو بدلم انداخت

امید وارم کمکت کرده باشم

zarzari
یک شنبه 11 فروردین 1387, 11:10 صبح
سلام آقای tthenry14plus ،
از این که وقت گذاشتین و جواب منو دادین ممنونم ، ولی من گفته بودم 2003 کار میکنم و گرید 2003 متأسفانه این event هایی که شما استفاده کردین رو نداره .
ممکنه دوباره کمک کنین.
ممنونم.

tthenry14plus
شنبه 17 فروردین 1387, 01:10 صبح
من 2003 ندارم، پراپرتیهایی که دیتاگرید ویو در 2003 داره چیه؟
بفرمائید تا بتونم راهنماییتون کنم

zarzari
شنبه 17 فروردین 1387, 08:16 صبح
سلام ، خسته نباشین.
2003 اصلا دیتاگرید ویو نداره ، یک دیتا گرید داره که تنها event اون که بدرد این کار می خوره ، DGCoding_DoubleClick هستش ، که آرگومان e اون ، از نوع DataGridViewCellEventArgs نیست ، بلکه System.EventArgs میباشد . بنابراین من برای انتخاب ردیف کلیک شده از DGCoding.CurrentRowIndex استفاده میکنم و سراغ همین ردیف dataset ام میروم. و چون dataset ام مرتب نشده ، این اشکال پیش می آید.
از کمکتون ممنون.

tthenry14plus
یک شنبه 18 فروردین 1387, 01:08 صبح
اگر برات امکان پذیره ماکرو یا سورس برنامتو بذار

zarzari
شنبه 24 فروردین 1387, 11:45 صبح
سلام آقای tthenry14plus ،
فهمیدم مشکل چی بود و حل شد . البته راهنمائیهای شما بی تاثیر نبود.
لطف کردین .ممنون.