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

حفظ پاراگراف بندی متن وارد شده در هنگام نمایش آن

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
سلام علیکم،

حتما تا حالا دیدید که در بعضی سایتها مثلا از بازدید کننده میخواهند که نظرش را در موردی خاص وارد کند و برای این کار از یک textbox یا textarea استفاده میکنند و بعد که این نظرات را نمایش میدهند فرمت اونها دقیقا همون فرمتی هست که بازدیدکننده وارد کرده بوده. یعنی مثلا اگر جایی 2 بار enter زده باشه در نمایش ان هم 2 تا خط خالی نشان میده.

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

البته قبلا از html area استفاده کردم ولی خوب html area امکانات زیادی برای فرمت کردن متن داره که من به هیچ کدومش نیازی ندارم. اگر راهی باشه که فقط پاراگراف بندی ها حفظ بشه مشکل من حل میشه.

اگر کسی بدونه و راهنمایی کنه ممنون میشم.
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
شما وقتی انتر میزنید ، کاراکتر خط جدید وارد میشه ، و این در حالی که توی html کاراکتر خط جدید موجب انتقال به خط جدید نمیشه ،و همونطور که میدونید <br> خط جدید و <p> پاراگراف جدید رو میسازن ! پس این چیز عجیبی نیست که انتر زدن خط جدید نسازه
و اما کاری که شما باید بکنید اینه که کاراکتر خط جدید رو هنگام نمایش داخل -رشته ای که کل متن است - رو با <br> عوض کنید ! که این کار رو میتونید با متد replase انجا بدید.

string strTextBox = // متن خوانده شده از بانک اطلاعاتی که نتیجه تکست باکس آنجا ذخیره شده

strTextBox.Replace ("\n","<br>")
برای vb

strTextBox.Replace(vbCrLf,"<br>")
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران

winter

کاربر تازه وارد
تاریخ عضویت
4 فوریه 2006
نوشته‌ها
58
لایک‌ها
0
به نقل از H_R :
شما وقتی انتر میزنید ، کاراکتر خط جدید وارد میشه ، و این در حالی که توی html کاراکتر خط جدید موجب انتقال به خط جدید نمیشه ،و همونطور که میدونید <br> خط جدید و <p> پاراگراف جدید رو میسازن ! پس این چیز عجیبی نیست که انتر زدن خط جدید نسازه
و اما کاری که شما باید بکنید اینه که کاراکتر خط جدید رو هنگام نمایش داخل -رشته ای که کل متن است - رو با <br> عوض کنید ! که این کار رو میتونید با متد replase انجا بدید.
ای ول، دستت درد نکنه! خیلی روش جالبی بود. اصلا به ذهنم نرسیده بود که که موقع نمایش اطلاعات این تغییرات را اعمال کنم. همش تو این مایه ها میچرخیدم که همون موقع نوشتن تو دیتابیس یه جوری این <BR> ها رو بهش اضافه کنم که عملی بود ولی موقع ادیت کردن متن باعث دردسر میشد.

حالا یه سوالی: شما فکر میکنی توی سایتهای دیگه هم -مثلا همون مثالی که زدم- از این روش استفاده میکنن؟ یعنی میخوام بدونم روش متداول اینه یا اینکه اول متن وارد شده با یه چیزی مثل همون html area یا یه چیز ساده تر به html تبدیل بشه و بعد داخل دیتابیس ذخیره بشه و موقع نمایش به تبدیلی نیاز نداشته باشه؟

بازهم ممنون.
 
بالا