تبلیغات :
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 7 12345 ... آخرآخر
نمايش نتايج 1 به 10 از 61

نام تاپيک: اشاره کمبو باکس و دیتاگرید به رکورد تازه درج شده

  1. #1
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض اشاره کمبو باکس و دیتاگرید به رکورد تازه درج شده

    با سلام
    فرض کنید که درون کمبو باکسی TerritoryID ها قرار دارند.

    و جدولی که قرار است درون آن عمل درج انجام شود ، EmploeeTerittoris از پایگاه داده Northwind است. همانطور که می دانید این جدول بر اساس اعداد ، به صورت صعودی مرتب است.
    حالا کاربر به واسطه دکمه درجی که روی فرم قرار دارد تراکنشی انجام می دهد. مثلاً رکوردی جدید را درج می کند. بعد از عمل درج ، رکورد جدید به DataGrid افزوده می شود.

    تا اینجا مشکلی وجود ندارد.

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

  2. #2
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام. سوالم نامفهوم بود؟ برای همین خاطر از دوستان کسی نمی تواند راهنمای ام کند؟

  3. #3
    آخر فروم باز
    تاريخ عضويت
    Jan 2007
    محل سكونت
    تهران
    پست ها
    1,052

    پيش فرض

    راستش آره،تا حدی...ولی میدونم میتونی با ComboBox.SelectedIndex و ComboBox.SelectedItem آیتم کمبو باکس و با DataGridView.SelectedCell و DataGridView.SelectedRow آیتم دیتا گرید رو تنظیم کنی.میتونی اول ببینی چی اضافه شده بعد بگردی ایندکسشو پیدا کنی و انتخابش کنی یا از همون اول با SelectedItem و خود آیتم اضافه شده که میدونی چیه انتخابش کنی.

  4. #4
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام. من اون قسمت هایی که برای کمبو باکس هست رو امتحان می کنم ولی من از DataGrid استفاده می کنم.

  5. #5
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ولی متاسفانه، نشانگر به ابتدای DataGrid و کمبو باکس منتقل می شود و من نمی توانم سطر تازه درج شده را نشان دهم. همین امر برای داده های درون کمبو هم اتفاق می افتد.
    اگر از کنترلر DataGridView استفاده میکنید و اگر بتوانید ردیف سطر مورد نظر را پیدا کنید گمانم با خصیصه currentcell مشکلتان حل شود.

    مثلاً
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    (البته تست نکردم ولی گمانم جواب دهد)

  6. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  7. #6
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض یک راه حل برای این سوال

    سلام

    من به جواب رسیدم ولی به صورت ساده. چون کدهای مخصوص این کار رو نداشتم ولی هنوز هم اگر چنین کدی پیدا بشه، استقبال می کنم.
    راستش برنامه ام کمی پیچیده است و می ترسم که اگر وارد جزئیاتش بشم، خواننده ای مثل خودم علاوه برا اینکه لذتی از خوندنش نبره دلسرد هم بشه
    برای این که این سوال بالاخره یک پاسخ منجر به حل مساله رو در خودش داشته باشه، بر خودم واجب دونستم که حتماً به راه حل خودم اشاره ای بکنم.

    و اما چگونه به جواب رسیدم.
    من دو تا سوال رو مطرح کرده بودم.
    اول اینکه: چگونه داده درون کمبو باکس وقتی درجی اتفاق می افته، درست به گزینه ای اشاره بکنه که تازه درج شده.
    جواب: چون داده درون کمبو باکس از نوع کاراکتری است(کمبو باکس مثال من) ، پس من به طریقی(که گفتنش خودش می شه یه بحث جدید) رشته ای را به دست می آورم تا بتوانم آن را بهانه ای کنم و به کمبو باکس بفهمانم که دقیقاً به رشته همنام این رشته اشاره کن. می دونم که بدتر گیج شدید. ای کاش می شد کاربران هم می تونستند یک نمونه قرار بدن.
    mycombobox.text=mystring

    سوال دوم: چه جوری به دیتاگرید بفهمونم که همانجایی رو نشون بده که کمبو هم داره نشون می ده. یعنی کاربر بفهمه که چه چیزی رو درج کرده. یعنی کاربر حق نداره بدونه چه سطری بالاخره درج شده؟!
    جواب: من از روش حلقه for استفاده کردم. روشی ساده. اول تعداد سطرهای دیتاگریدم رو شمردم ، بعد حلقه رو تشکیل دادم و گفتم که اگر سلول اول از سطر اول با داده رشته ای من برابر بود، از حلقه بیا بیرون و مقداری رو که حلقه شمرده رو بگذار به عنوان سطری که در دیتاگرید جدیداً اضافه شده، اگر هم برابری حاصل نشد که دوباره حلقه می چرخه. حالا حتی اگر این رکورد تاره درج شده ، وسط های سطرهای دیتاگرید باشه، باز هم نمی تونه از دید کاربر فرار کنه!

  8. #7
    آخر فروم باز shalineh's Avatar
    تاريخ عضويت
    Mar 2007
    محل سكونت
    فعلا ایران
    پست ها
    1,033

    پيش فرض

    سوال دوم: چه جوری به دیتاگرید بفهمونم که همانجایی رو نشون بده که کمبو هم داره نشون می ده. یعنی کاربر بفهمه که چه چیزی رو درج کرده. یعنی کاربر حق نداره بدونه چه سطری بالاخره درج شده؟!
    جواب: من از روش حلقه for استفاده کردم. روشی ساده. اول تعداد سطرهای دیتاگریدم رو شمردم ، بعد حلقه رو تشکیل دادم و گفتم که اگر سلول اول از سطر اول با داده رشته ای من برابر بود، از حلقه بیا بیرون و مقداری رو که حلقه شمرده رو بگذار به عنوان سطری که در دیتاگرید جدیداً اضافه شده، اگر هم برابری حاصل نشد که دوباره حلقه می چرخه. حالا حتی اگر این رکورد تاره درج شده ، وسط های سطرهای دیتاگرید باشه، باز هم نمی تونه از دید کاربر فرار کنه!
    این روش اصلا مناسب نیست. در حجم بالای اطلاعات و داده ها، حلقه شما وقت کاربر و منابع سیستم رو به هدر خواهد داد.

    برای یافتن آخرین رکورد وارد شده، ابتدا باید رکورد شما دارای فیلد منحصر به فرد باشد.( بهتر است این فیلد از نوع عددی باشد مثلا Id مربوط به همون رکورد)
    سپس با دستور OleDbCommand.ExecuteScalar می توان آخرین آی دی وارد شده رو بدست آورد. و در نهایت با استفاده از همون روشی که کاربر H2 گفتند نشانگر را به ردیف مورد نظرمان هدایت کنیم.

  9. #8
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام
    ممنونم از اینکه توجه کردید
    من از DataGrid استفاده می کنم نه Datagridview
    همه کارهایی رو هم که شما فرمودید انجام داده ام. تنها نکته ای که برام جالبه، اشاره به سطر تازه درج شده در dataGrid است که به قول شما با حلقه for انجام نشه

  10. #9
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام
    برای پیدا کردن راه حل یک سوال را مطرح می کنم.

    آیا زمانیکه ویرایشی یا حذفی و یا درجی در بانک اطلاعات اتفاق می افتد، رخدادی صدا زده می شود؟

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

    شاید با دانستن این مطلب که چه زمانی چه رویدادی اتفاق می افتد بتوان بر مشکل فائق آمد

  11. #10
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام

    دستور زیر اخرین سطر از DataGrid را تولید می کند .
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    آیا می توان این دستور را دستکاری کرد تا شماره سطری خاص به صورت تصادفی را تولید کند؟
    Last edited by قله بلند; 25-12-2008 at 13:42.

صفحه 1 از 7 12345 ... آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •