PDA

View Full Version : rigth to left فقط يك ستون از ديتا گريد



Ali_Abban
یک شنبه 14 مهر 1387, 04:09 صبح
سلام
من يك ديتا گريد دارم كه به وسيله يك ديتا تيبل پر مي شه و چون اطلاعات همه ستونها فارسيه Rigth to left اون رو True كردم.
مشكل اينجاست كه اطلاعات يك ستون انگليسيه و شامل يه سرس كاركترهاست مثل (~ و /) اطلاعات اين ستون درست نمايش داده نمي شه.
لطف كنيد كمك كنيد بگيد چطوري مي تونم فقط Right To left اون يك ستون رو False كنم.
آيا اينجوري درست مي شه؟
راه حلش چيه؟

smt_414
یک شنبه 14 مهر 1387, 23:28 عصر
سلام


شما برای اون ستون با کد نویسی باید جهت رو تغییر بدید
به این صورت

DataGridViewCellStyle digit = new DataGridViewCellStyle();
digit.Alignment = DataGridViewContentAlignment.MiddleRight;
dgv_show_all_hesab.Columns["radif_dastgah"].DefaultCellStyle = digit;


منبع (کتاب آقای هاشمیان)

موفق باشید

Milad Mohseny
سه شنبه 16 مهر 1387, 12:25 عصر
مشکل با Right to Left است نه با Alignment.
من هم این مشکل رو دارم

smt_414
سه شنبه 16 مهر 1387, 18:27 عصر
سلام


مشکل با Right to Left است نه با Alignment.

دوست عزیز شما کد رو امتحان کردید ؟!

h.jaza
چهارشنبه 17 مهر 1387, 00:06 صبح
کدی رو که smt_414 (http://barnamenevis.org/forum/member.php?u=15482) نوشتن امتحان کنید، کاملا درسته و کارآمد.

Milad Mohseny
چهارشنبه 17 مهر 1387, 08:52 صبح
دوست عزیز شما کد رو امتحان کردید ؟!
بله امتحان کردم. برای این مشکل جواب نداد.
مشکل اینه:
ببین کاربر مثلا یک فیلد شماره را به این صورت وارد میکند 1-44
اگر Right To Left مربوط به DataGridView را True کنیم فیلد فوق به صورت 44-1 نمایش داده میشود که کاربر به اشتباه میافتد.
مشکل اینجاست ما میخواهم کل DataGridView به صورت Right To Left باشد فقط فیلد شماره Right To Left نباشد. Alignment در این مورد کمکی نمیکند.
برای حل این مشکل میشود فیلد شماره تک تک سطر هارو موقع نمایش به شکل دلخواه عوض کرد(با کد نویسی) ولی اگر 2000 رکورد داشته باشیم خیلی کند میشه.

Ali_Abban
چهارشنبه 17 مهر 1387, 10:17 صبح
ببین کاربر مثلا یک فیلد شماره را به این صورت وارد میکند 1-44
اگر Right To Left مربوط به DataGridView را True کنیم فیلد فوق به صورت 44-1 نمایش داده میشود که کاربر به اشتباه میافتد.
مشکل اینجاست ما میخواهم کل DataGridView به صورت Right To Left باشد فقط فیلد شماره Right To Left نباشد. Alignment در این مورد کمکی نمیکند.


مشكل من هم همينه.

Sal_64
چهارشنبه 17 مهر 1387, 10:17 صبح
سلام

چطور میشه توی datagrid به وسیله کد نویسی Right to Left یک ستون رو تغییر داد ؟ :ناراحت:


تشکر

smt_414
چهارشنبه 17 مهر 1387, 12:32 عصر
سلام


چطور میشه توی datagrid به وسیله کد نویسی Right to Left یک ستون رو تغییر داد ؟





dataGrid.DataSource = objDataSet.Tables["riz_daryaft"];
//
DataGridTableStyle dg = new DataGridTableStyle();
dg.MappingName = "riz_daryaft";
dataGrid.TableStyles.Add(dg);
dg.GridColumnStyles["radif_dastgah"].Alignment = HorizontalAlignment.Right;
موفق باشید



مشكل من هم همينه.

برای بررسی بیشتر کدتون رو اینجا بزارید

Milad Mohseny
چهارشنبه 17 مهر 1387, 13:15 عصر
چطور میشه توی datagrid به وسیله کد نویسی Right to Left یک ستون رو تغییر داد ؟
دوست عزیز smt_414 ممنون از کدی که گزاشتی ولی کد فوق جهت Right to Left کمکی نمیکنه جهت Alignment خوبه.
لطفاً تفاوت این دوتارو اول تست کن.

h.jaza
پنج شنبه 18 مهر 1387, 10:42 صبح
حرف دوستان کاملا درسته و Alignment فقط مکان نمایش متن رو تغییر میده و نه راستچین بودنشو.

از این که بگذریم، من خیلی دنبالش گشتم ولی چیزی برای تغییر Right to Left در حالت کد پیدا نکردم، لذا اساتید خواهشن کمک کنن.

Milad Mohseny
پنج شنبه 18 مهر 1387, 10:51 صبح
من خیلی دنبالش گشتم ولی چیزی برای تغییر Right to Left در حالت کد پیدا نکردم
من به این نتیجه رسیدم که با کد نویسی روش نمایش رشته مورد نظر رو عوض کنیم. مثلا شماره 1-44 رو خودمون قبل از نمایش به 44-1 تبدیل کنیم(با کد نویسی روی رشته ها به راحتی میشه این کارو کرد). خوب شماره 44-1 در grid به صورت 1-44 نمایش داده میشه که همونیه که ما میخواهیم.
فقط ایرادش اینه که اگه مثلاً 2000 تا سطر داری حلقت 2000 بار باید تکرار بشه.

h.jaza
پنج شنبه 18 مهر 1387, 11:01 صبح
من به این نتیجه رسیدم که با کد نویسی روش نمایش رشته مورد نظر رو عوض کنیم. مثلا شماره 1-44 رو خودمون قبل از نمایش به 44-1 تبدیل کنیم(با کد نویسی روی رشته ها به راحتی میشه این کارو کرد). خوب شماره 44-1 در grid به صورت 1-44 نمایش داده میشه که همونیه که ما میخواهیم.

دوست عزیز اینجوری که اصلا اصولی نیست و همون جور که خودتم گفتی:

فقط ایرادش اینه که اگه مثلاً 2000 تا سطر داری حلقت 2000 بار باید تکرار بشه.
به نظر من اصلا اصول Net. رو زیر پا میگذاره و به شدت با اون منافات داره. به نظر من باید یه راه اصولی ای برای انجام این کار وجود داشته باشه.


.: این که ما بلد نیستیم با اینکه وجود نداره، خیلی متفاوته :.