نمایش نتایج 1 تا 17 از 17

نام تاپیک: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

  1. #1
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    سلام

    من یک گرید طراحی کردم اما هنگامی که برنامه اجرا میشه ، ترتیب چیدمان ستونها با محیط طراحی من فرق میکنه.
    علت چیه؟
    تشکر

  2. #2
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    شاید یه جایی از کدتون خاصیت DisplayIndex از ستون های گریدتون رو تغییر دادین!!!!!!

  3. #3
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

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

  4. #4

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    سلام
    به همون ترتیبی که ستونها در دیتا گرید وبو قرار دارد به همون ترتیب هم در دستور select فیلدها را بنویس درست میشه

  5. #5

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    آقا این مشکل من هم هست لطفا اگه کسی می دونه کمک کنه.
    من هم یک ستون غیر بایند شده اضافه می کنم، می شه ستون اول! ولی من می خوام بشه ستون آخر. یعنی ستون های بایند شده من اول بیان بعد ستون غیر بایند شدم.مرسی

  6. #6

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    من هم این مشکل داشتم به این ترتیبی که تو پست 3 گفتم نوشتم درست شد

  7. #7
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    نقل قول نوشته شده توسط abcd_a مشاهده تاپیک
    من هم این مشکل داشتم به این ترتیبی که تو پست 3 گفتم نوشتم درست شد
    دوست من مشکل ترتیب ستون های دیتابیسی نیست.
    من فیلدهایی که از دیتابیس میارم تو گرید مشکلی نداره. فقط یه ستون دارم که از دستور Select مقدار نمیگیره و چک باکسه. تا قبل از بایند کردن دیتا مشکلی نیست اما به محض اینکه دیتا بایند میشه اون ستون از ستون آخر به ستون سوم تغییر مکان میده.
    مشکل رو به این صورت حل کردم که در دستور Select یک فیلد با مقدار خالی به نام اون فیلد گرفتم و ستون گرید رو دیتابیسی کردم که عملا مقدار خالی از دیتابیس در اون ریخته میشه.
    درسته که حل شد اما این روش، روش درستی نیست. میخواستم بدونم کسی هست این مشکل رو برطرف کرده باشه.
    در ضمن من از Entity Framework استفاده میکنم و مجبور شدم به خاطر همین یه دونه ستون که جا به جا میشه، یه View درست کنم.
    تشکر از همه دوستان

  8. #8
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    سلام. وقتی یه ستون رو بصورت دستی به گرید اضافه میکنید( یعنی با Add Column) برای اینکه ترتیب حفظ بشه باید برای بقیه فیلدها هم ستون ایجاد کنی. یعنی دقیقا به تعداد فیلدهایی که در select برمیگردونی، درون گرید باید ستون اضافه کنی. تنها نکته ای که هست باید خاصیت DataPropertyName هر ستون رو دقیقا برابر با نام فیلدتون بذارید.
    موفق باشید.

  9. #9
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    نقل قول نوشته شده توسط mohammaddou مشاهده تاپیک
    سلام. وقتی یه ستون رو بصورت دستی به گرید اضافه میکنید( یعنی با Add Column) برای اینکه ترتیب حفظ بشه باید برای بقیه فیلدها هم ستون ایجاد کنی. یعنی دقیقا به تعداد فیلدهایی که در select برمیگردونی، درون گرید باید ستون اضافه کنی. تنها نکته ای که هست باید خاصیت DataPropertyName هر ستون رو دقیقا برابر با نام فیلدتون بذارید.
    موفق باشید.
    دقیقا همین کار انجام شده. یعنی ستونها به صورت دستی ایجاد شده و به وسیله DataPropertyName مقدار به اونها بایند میشه.
    فقط ستونی که دستی ایجاد کردم مقدار DataPropertyName نداره.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    نقل قول نوشته شده توسط مسلم نیکنام مشاهده تاپیک
    دقیقا همین کار انجام شده. یعنی ستونها به صورت دستی ایجاد شده و به وسیله DataPropertyName مقدار به اونها بایند میشه.
    فقط ستونی که دستی ایجاد کردم مقدار DataPropertyName نداره.
    در قسمت datapropertyname خودت نام فیلد رو تایپ کن.

  11. #11
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    این کد رو در سازنده فرمت بنویس ببین درست میشه!
    dataGridView1.AutoGenerateColumns = false;


    اگه درست نشد کد زیر رو بعد از اینکه داده های جدول رو میخونی و بهش میدی بنویس :
    dataGridView1.Columns["ColumnName"].DisplayIndex = dataGridView1.Columns.Count - 1;


    البته نباید نیاز به این باشه ولی از اونجایی که دیدم مشکل شما حل نمیشه اینو گفتم.
    موفق باشید

  12. #12
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

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

    1
    dataGridView1.AutoGenerateColumns = false;
    اگه این پروپرتی رو برابر False قرار بدید، دیگه ستونهای گرید از دیتاسورس مقدار نمی گیرند.

    dataGridView1.Columns["ColumnName"].DisplayIndex = dataGridView1.Columns.Count - 1;
    در پست 7 عرض کردم که مشکل برطرف شد که البته به روش غیر اصولی برطرف شد. تغییر ایندکس ستون شاید بتونه مشکل رو برطرف کنه اما روش اصولی نیست.

    هدف من از ایجاد این پست این بود که بتونم راهکار اصولی رفع این مشکل رو پیدا کنم که متاسفانه نشد.

    تشکر به خاطر راهنماییتون و وقتی که گذاشتید

  13. #13
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    منظور من از نسبت دادن datapropertyname به ستون، ستونی بود که بصورت دستی تعریف کرده بودید و طبق گفته خودتون در پست 9 این ستون مقدار دهی نشده بود. بهر حال زمانیکه گرید رو مستقیما به دیتاسورس وصل کنی(روش ویزاردی) ،نام فیلدها درون datapropertyname وجود دارند و نیازی به تایپ کردن نام فیلدها نیست. ولی اگر با کد نویسی(روش غیر ویزاردی) بخوای کوئری رو درون گرید نمایش بدی اونوقت باید خاصیت datapropertyname رو خودت برای هر ستون تایپ کنی. بهرحال سعی ما این بود که مشکل شما حل بشه.
    موفق باشید.

  14. #14
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    اگه این پروپرتی رو برابر False قرار بدید، دیگه ستونهای گرید از دیتاسورس مقدار نمی گیرند.
    اشتباه می کنید دوست عزیز.
    با False کردن پراپرتی AutoGenerateColumns مشکلی پیش نمیاد البته به شرطی که خاصیت datapropertyname رو مقداردهی کرده باشین.

    این کار باعث میشه که مثلا اگه دستور Select شما 5 ستون داره ولی شما میخواین که 4 تا از ستون ها رو نمایش بدین(حالا به هر دلیلی) اون ستون پنجم نمایش داده نمیشه!
    ولی اگه این کد رو نذارین ستون پنجم هم به طور اتوماتیک به گردیتون اضافه میشه حتی اگه شما ستونی براش در نظر نگرفته باشین!

    می گین نه امتحان کنید.

    در ضمن در مورد مشکلتون هم که میگین غیراصولی درست شد به احتمال زیاد شما یه جایی از کارتون سوتی دادین وگرنه مطمئن باشید این مشکل پیش نمیومد!من هم قبلا این مشکل رو داشتم ولی خیلی ساده برطرف شد و اصلا نیاز به کد نویسی خاصی نداشت.بستگی به نحوه Bind کردن DataSource و چیدمان ستونها در Design داره.

    موفق باشید.

  15. #15
    کاربر دائمی آواتار NIK
    تاریخ عضویت
    خرداد 1389
    سن
    39
    پست
    293

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    نقل قول نوشته شده توسط troski مشاهده تاپیک
    اشتباه می کنید دوست عزیز.
    با False کردن پراپرتی AutoGenerateColumns مشکلی پیش نمیاد البته به شرطی که خاصیت datapropertyname رو مقداردهی کرده باشین.

    این کار باعث میشه که مثلا اگه دستور Select شما 5 ستون داره ولی شما میخواین که 4 تا از ستون ها رو نمایش بدین(حالا به هر دلیلی) اون ستون پنجم نمایش داده نمیشه!
    ولی اگه این کد رو نذارین ستون پنجم هم به طور اتوماتیک به گردیتون اضافه میشه حتی اگه شما ستونی براش در نظر نگرفته باشین!

    می گین نه امتحان کنید.

    در ضمن در مورد مشکلتون هم که میگین غیراصولی درست شد به احتمال زیاد شما یه جایی از کارتون سوتی دادین وگرنه مطمئن باشید این مشکل پیش نمیومد!من هم قبلا این مشکل رو داشتم ولی خیلی ساده برطرف شد و اصلا نیاز به کد نویسی خاصی نداشت.بستگی به نحوه Bind کردن DataSource و چیدمان ستونها در Design داره.

    موفق باشید.
    حق با شماست. با GenerateMember اشتباه گرفتم.

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

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

    هر چی فکر میکنم نمی دونم اشکال ممکنه از کجا باشه.

    مشکل فعلا حل شده اما با تمام وجود دوست دارم بدونم چرا اینطوری شده یا به قول شما کجا سوتی دادم. بدجوری ذهنم رو درگیر کرده.

    من اولین باره که یک پروژه ویندوزی برداشتم و اگه قرار باشه این مشکل در گریدهای دیگه هم به وجود بیاد، خیلی اوضاع بد میشه.

    فکر میکردم پروژه های ویندوزی خیلی راحت تر از وب هستند اما انگار ویندوزی ها هم مشکلات خاص خودشون رو دارند.

    باز هم تشکر از شما و mohammaddou به خاطر وقتی که واسم میزارید.

  16. #16
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    اگه امکانش هست پروژتون رو یا بخشی از کدتون رو بذارین شاید متوجه شیم مشکل از کجاست.
    به هر حال نباید اینطوری باشه و با کلک رشتی هم مشکل رو حل کردن بعدا خودش دردسر میشه.
    شاید اگه برنامه تون باشه بتونم کمکتون کنم.

  17. #17
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: تفاوت تربیت ستونهای DataGrid در محیط طراحی و اجرا

    ببینید دوست عزیز. راه اصولیش اینه که از یک روش برای پر کردن گرید استفاده کنید.(یا روش ویزاردی یا با کدنویسی که توصیه میکنم با کدنویسی این کا رو انجام بدید. یه بار تست کنید ضرر نمیکنید). همونطور که قبلا هم گفتم به تعداد فیلدهایی که میخواید نمایش بدید ستون در گرید اضافه کنید و خاصیت datapropertyname رو برای هر ستون برابر با نام فیلد قرار بدید. ستون هایی رو هم که دوست ندارید نمایش داده بشن میتونید خاصیت visable اونها رو false کنی. من خودم شخصا در تمام برنامه هام از این روش استفاده میکنم.

تاپیک های مشابه

  1. سوال: اختلاف بین محیط طراحی و اجرا
    نوشته شده توسط mehran5 در بخش VB.NET
    پاسخ: 2
    آخرین پست: جمعه 17 آبان 1387, 01:42 صبح
  2. ایجاد یک جدول در محیط طراحی یا اجرا
    نوشته شده توسط Softprog در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 0
    آخرین پست: چهارشنبه 24 مرداد 1386, 10:03 صبح
  3. تنظیم ستونهای dataGrid از طریق کد.
    نوشته شده توسط amir_king2_2 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 02 خرداد 1383, 16:35 عصر
  4. چند سوال در مورد محیط طراحی دات نت
    نوشته شده توسط A.Noor در بخش VB.NET
    پاسخ: 3
    آخرین پست: دوشنبه 07 اردیبهشت 1383, 13:42 عصر
  5. framework یا component های یک محیط طراحی (مثلا مدار)
    نوشته شده توسط shaniaki در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: یک شنبه 07 دی 1382, 07:44 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •