PDA

View Full Version : مشکل در خواندن متن های چند خطی



baran_mehr
سه شنبه 06 فروردین 1387, 15:41 عصر
بچه ها من یه متنی را داخل textbox به صورت چند خطی میگیرم و داخل دیتابیس ذخیره میکنم. ولی وقتی دوباره میخوام از دیتابیس بخونمش به صورت تک خطی نشون میده
باید چکار کنم:افسرده:

sama01
سه شنبه 06 فروردین 1387, 15:52 عصر
دلیل این مشکل این است که اینتر در textbox به صورت تگ br ذخیره نمی‌شود.
راه حل بایگزینی قبل از ذخیره است:

<asp:Label ID="Label8" runat="server" Text='<%# replace(Eval("comments"),chr(13),"<br/>") %>' />

Nasim_m
سه شنبه 06 فروردین 1387, 16:01 عصر
این مشکل به این علت هست که در HTML اینتر معنایی ندارد برای این منظور شما باید به جای متن کدهای HTML را در دیتا بیس ذخیره کنی و بهترین کار استفاده از یک HTMLEditor است
من Free text Box را پیشنهاد می کنم
http://freetextbox.com/download/default.aspx

meysam_12001
سه شنبه 06 فروردین 1387, 16:03 عصر
textmode تکست باکست رو multiline کن (البته اگر نیست)

nazaninam
سه شنبه 06 فروردین 1387, 20:08 عصر
textmode تکست باکست رو multiline کن (البته اگر نیست)
پیشنهاد می کنم برای کارهای ساده از این ادیتور ها استفاده نکنید ، بیخودی بار سنگین به بانکت اضافه می کنه



textmode تکست باکست رو multiline کن (البته اگر نیست)


ارتباطی به Multiline نداره

راه حل بسیار ساده است ، همونطور که دوستمون sama01 گفتن باید کد اینتر را با تگ br جابجا کنی
اگر در C# کد نویسی می کنی کد اینتر n\ هست .
ا

sepide1
سه شنبه 06 فروردین 1387, 22:31 عصر
پیشنهاد می کنم برای کارهای ساده از این ادیتور ها استفاده نکنید ، بیخودی بار سنگین به بانکت اضافه می کنه




ارتباطی به Multiline نداره

راه حل بسیار ساده است ، همونطور که دوستمون sama01 گفتن باید کد اینتر را با تگ br جابجا کنی
اگر در C# کد نویسی می کنی کد اینتر n\ هست .
ا
میشه در این مورد بیشتر توضیح بدید (اگه بشه یک نمونه بزارید که عالی میشه)

sama01
چهارشنبه 07 فروردین 1387, 00:48 صبح
عزیزم. من کد مربوطه را برایتان نوشته‌ام. نمونه‌ی چه چیزی را می‌خواهید؟
فقط من به زبان VB نوشتم که دوستمون لطف کردند معادل کاراکتر را در C# هم نوشتند.

البته ذکر شود که کدی که من نوشتم، طوری است که من در پایگاه داده، همان مقدار ورودی TextBox را ذخیره می‌کنم و در زمان نمایش این جابجایی را انجام می‌دهم. ولی فرقی در ماهیت کار نمی‌کنه. روش همینه.

nazaninam
جمعه 09 فروردین 1387, 20:12 عصر
دوست خوبم پیشنهاد من اینه که حتی این تگ هارم جابجا نکنید و بگذارید که مقدار داخل textbox وارد دیتابیس بشه ، در هنگام دریافت اطلاعات از دیتابیس هر جا نیاز داشتید اینتر را با تگ Br جاجبا کنید .
موفق باشید

my_blithe
جمعه 09 فروردین 1387, 20:21 عصر
نمیشه خواهر من
وقتی تو بانک ذخیره کنی به صورت یک متن پشت سر هم درمیاد که بجای اینتر فقط یک فاصله می ندازه. حالا شما چطور می خوای این فاصله رو از دیگر فاصله ها متمایز کنی؟؟؟

sama01
شنبه 10 فروردین 1387, 01:11 صبح
کدی که من نوشتم، از رو هوا ننوشتم که. قبلا انجامش دادم و از داخل کد برنامه، کپی پیست کردم.
من متن را از طریق این textBox وارد و ذخیره می‌کنم. می‌بینید که هیچ ویرایشی روی متن انجام نمی‌شه.

<asp:TextBox ID="TXT_comments" Text='<%# Bind("comments") %>' runat="server" TextMode="MultiLine" />

و با این کد هم نشونش می‌دم.


<asp:Label ID="Label8" runat="server" Text='<%# replace(Eval("comments"),chr(13),"<br/>") %>' />

مشکل کجاست؟

nazaninam
سه شنبه 13 فروردین 1387, 16:17 عصر
نمیشه خواهر من
وقتی تو بانک ذخیره کنی به صورت یک متن پشت سر هم درمیاد که بجای اینتر فقط یک فاصله می ندازه. حالا شما چطور می خوای این فاصله رو از دیگر فاصله ها متمایز کنی؟؟؟

چی نمیشه برادر من؟ اولا وقتی تو بانک ذخیره میشه هیچ تغییری نمی کنه !!
در ضمن به جای اینتر فاصله نمی اندازه !!!
کاراکتر اینتر به صورت Char(13) یا \n هست که در کد های Html نمایش داده نمیشه و تاثیری نمیگذاره برای همین کافیه این کد هارو با تگ br جابجا کنید

Mojtaba_ss
سه شنبه 13 فروردین 1387, 18:33 عصر
//متن خوانده شده از دیتابیس
string strBody = "selected from db";
//تغییر به منظور نمایش در یک کنترل
strBody = strBody.Replace("\n", "<br />");