سلام.
فرض کنید یکی از دکمه های درون یک DataGrid کلیک می شود. از کجا بفهمیم که این دکمه مربوط به چندمین رکورد DataGrid می باشد؟(این دکمه در چندمین رکورد کلیک شده)
سلام.
فرض کنید یکی از دکمه های درون یک DataGrid کلیک می شود. از کجا بفهمیم که این دکمه مربوط به چندمین رکورد DataGrid می باشد؟(این دکمه در چندمین رکورد کلیک شده)
................
آخرین ویرایش به وسیله Babak-Aghili : یک شنبه 20 آذر 1384 در 17:58 عصر
در
DataGrid.CurrentCellChanged
از DataGrid.CurrentRowIndex
بدست میارید. من ۲۰۰۳ را ندارم، وگرنه امتحان میکردم جواب کامل را میفرستادم.
اولندش این چه طرز جواب دادنه؟ نمی تونین کامل توضیح بدین؟
دومندش همچین Property ای ندارد.
سلام دوست عزیز.
بسیار آسان. در رویداد CellContentClicked باید اینکار ها را انجام دهید:
ابتدا مشخص کنید که button در کدام ستون است.
مثلاً اگر در ستون سوم است، index ستون 2 میشود (ایندکس از 0 شروع شده)
حال باید اینطوری بنویسید:
if(e.ColumnIndex == dataGridView1.Columns[2].Index)
{
MessageBox.Show(e.RowIndex.ToString());
}
که همون طور که میبینی ابتدا میبینه که در ستون button باشه یا نه (من در ستون 3 در نظر گرفتم) در نتیجه در یک مسج باکس شماره سطرو نشون میده
![]()
امیدوارم موفق باشی
این ماله 2005 هست. نه؟
نه. در دات نت 2005 هم e.RowIndex بود! (فکر میکنم!)
این e از کجا اومده؟
Edit Command یا Cancel Command یا ... ؟
اینقدر از خودت فکر در نَوکن(خودم را میگم)
بابا ای ول زودتر می گفتی برای 2005 می خوای
از این استفاده کن هرجا که خواستی <نیاز به e هم نداری>
int ID = dataGridView1.CurrentRow.Index;
2003
int ID=dataGrid1.CurrentRowIndex
آخرین ویرایش به وسیله مطهر : سه شنبه 22 آذر 1384 در 22:09 عصر
بابا به جان خودم تو 2003 همچین Property ای ندارم.
شما یک نگاهی تو یکیه خودت بنداز شاید فقط تو داری.
آخرین ویرایش به وسیله nokhod : پنج شنبه 24 آذر 1384 در 13:03 عصر
ببین! e مخصوص استفاده در رویداد CellContentClick هستا!
با من هستی؟؟بابا به جان خودم تو 2003 همچین Property ای ندارم.
شما یک نگاهی تو یکیه خودت بنداز شاید فقط تو داری.
ببین من دقیقاً کد را کپی کردم اینجا
مشکل از توست
حتماً داری خارج از method کدت را می نویسی
void Test()
{
int ID=dataGrid1.CurrentRowIndex
}
اینو ببین
می بینم که......
بابا بگین تو 2003 همچین Propertyای (CurrentRowIndex) وجود داره یا نه؟
تویکیه من نیست. شما اینا رو از کجا میارین؟ ها؟ ها؟ ها؟
این فایل زیپ چیه؟
ببین .... خوبی..بابا بگین تو 2003 همچین Propertyای (CurrentRowIndex) وجود داره یا نه؟
تویکیه من نیست. شما اینا رو از کجا میارین؟ ها؟ ها؟ ها؟
این فایل زیپ چیه؟
فایل را دانلود کن ... یه مثال برات نوشته ام
حالا فهمیدم مشکل من و شما چیه:من تو WebBase می گویم و شما در WindowsBase.
خوب حالا تو WebBase بلدین؟
نه خیرخوب حالا تو WebBase بلدین؟
خیلی سرکاری بی مزه ای بود
اول نحوه ی سوال کردن را یاد بگیر بعد سوال مطرح کن
ضمناً این سوال را می بایست تو بخش مربوطه مطرح می کرده باشی
به نظر میرسه بد سرکار هستیم.
در بخش ASP.NET مطرح نمایید
با عرض سلام خدمت همه دوستان
من یه مشکلی با DataGrid.CurrentRowIndex دارم ، وقتی در حین اجرا روی تیتر ستون خاصی کلیک میکنم تا grid بر اساس اون ستون مرتب بشه ، windows application ، دیگه CurrentRowIndex جواب نمیده و شماره سطر قبل از مرتب کردن رو برمیگردونه ، نه شماره سطر فعلی رو !!!
چیکارش کنم ؟
ممنون از کمکتون.
سوال واضح نیست، آخه هنگام مرتب شدن دیتا گرید، شماره سطر و ستونی که روش کلیک کردید که تغییر نمیکنه؟؟؟؟؟؟؟؟؟؟؟
هنگامی که برای مرتب کردن روی سرستونها کلیک میکنی مقدار 1- در CurrentRowIndex قرار میگیره
من چنین حالتی ندارم.
پس از مرتب شدن هم دقیقا همان ستونی که انتخاب شده را برمی گرداند.
MessageBox.Show(dataGridView1.CurrentRow.Index.ToString());
اگر پس از مرتب شدن سلولی که کلیک شده بود Deselect میشه یه بحث دیگس.
سلام و ممنون از جوابتون ،
تا اینجای کار درست ،مقدار 1- در CurrentRowIndex قرار میگیره ، اما بعد که کاربر می خواد از این لیست مرتب شده ، یک سطرش رو انتخاب کنه ، من روی evente زیر : DoubleClick از گریدم ، CurrentRowIndex رو می خونم ، اما ردیف قبل ا زمرتب شدن رو برمی گردونه . نمی دونم چرا .
لطفا کمکم کنید . در ضمن 2003 کار میکنم .
خوب از اول میگفتی، چرا از 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());
}
شماره ردیفی رو که روش کلیک شده یا انتخاب شده رو بر می گردونه.
ببین دوست عزیز من نمی دونم ولی هر چی هست فکر کنم مشکلت رو دیتا سورس حل کنه _
ببین در کامپیوتر یا بهتر بگم در برنامه نویسی مشکل تر ین طراحی ها از نظر ما ساده ترین جوابها رو دارند و چیزهایی که ما فکر میکنیم که ساده و پیش پا افتادست سخترین جوابهارو
راستی یک تجربهمهم من منهم مثل شما یک مدت با این دیتا گرید مشکل پیدا کرده بودم انقدر مشکلم حاد بود که رئیسم شاکی شده بود خیلی کتاب خوندم ولی چیز زیادی دستگیرم نشد ..ولی یکشب به نیت حل مشکلم زیارت عاشورا را خواندم خدا جواب رو بدلم انداخت
امید وارم کمکت کرده باشم
سلام آقای tthenry14plus ،
از این که وقت گذاشتین و جواب منو دادین ممنونم ، ولی من گفته بودم 2003 کار میکنم و گرید 2003 متأسفانه این event هایی که شما استفاده کردین رو نداره .
ممکنه دوباره کمک کنین.
ممنونم.
من 2003 ندارم، پراپرتیهایی که دیتاگرید ویو در 2003 داره چیه؟
بفرمائید تا بتونم راهنماییتون کنم
سلام ، خسته نباشین.
2003 اصلا دیتاگرید ویو نداره ، یک دیتا گرید داره که تنها event اون که بدرد این کار می خوره ، DGCoding_DoubleClick هستش ، که آرگومان e اون ، از نوع DataGridViewCellEventArgs نیست ، بلکه System.EventArgs میباشد . بنابراین من برای انتخاب ردیف کلیک شده از DGCoding.CurrentRowIndex استفاده میکنم و سراغ همین ردیف dataset ام میروم. و چون dataset ام مرتب نشده ، این اشکال پیش می آید.
از کمکتون ممنون.
اگر برات امکان پذیره ماکرو یا سورس برنامتو بذار
سلام آقای tthenry14plus ،
فهمیدم مشکل چی بود و حل شد . البته راهنمائیهای شما بی تاثیر نبود.
لطف کردین .ممنون.