PDA

View Full Version : سوال: قالب بندی متن



noroozifar
جمعه 12 مهر 1392, 19:48 عصر
سلام

می خواهم متی که فرد نوشته به همان صورتی که نوشته نمایش داده بشه به طوریکه فاصله ها و همه چی رعایت بشه مثلا فرد به این صورت تایپ کرده :

1. حالا هر نوشته ای 2. نوشته بعدی
چهار تا خط میره پایین مینویسه دوباره

3. یک نوشته جدید

دوباره میره پایین تر مینویسه یک خط طولانی

حالا می خواهم بدانم به چه صورت در بانک ذخیره بشه که هنگام فراخوانی به همان صورت در صفحه نمایش داده بشه

این هم کدهای من هستند :
متن پیام:<br />
<asp:Panel ID="Panel1" runat="server" Width="490px" CssClass="panelview">
<asp:Label ID="BodyLabel" runat="server" Text='<%# Bind("Body") %>' />
</asp:Panel>
<br />

نکته اینکه نمی خواهم از کادری که براش مشخص شده بیرون بره اگر خط طولانی بود شکسته بشه

mahdioo12194
جمعه 12 مهر 1392, 19:57 عصر
از replace استفاده کن!!


http://barnamenevis.org/showthread.php?413687-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D9%84%DB%8C%D8%A8%D9%84

noroozifar
جمعه 12 مهر 1392, 20:26 عصر
ممنون از پاسخ اما کدهای من همان جور گذاشتم قسمت text به body مربوطه Bind شده و من نمیدونم به چه طریق باید تغییر کنه ؟
کل کدها به اینصورت است
<div id="Details" dir="rtl">
<asp:FormView ID="FormView1" runat="server" DataSourceID="EntityDataSource1">
<ItemTemplate>
موضوع:
<asp:Panel ID="Panel2" runat="server" Width="490px" HorizontalAlign="Right" ScrollBars="Auto">
<asp:Label ID="TitleLabel" runat="server" Text='<%# Bind("Title") %>' />
</asp:Panel>
<br />
متن پیام:<br />
<asp:Panel ID="Panel1" runat="server" Width="490px" CssClass="panelview">
<asp:Label ID="BodyLabel" runat="server" Text='<%# Bind("Body") %>' />
</asp:Panel>
<br />

</ItemTemplate>
</asp:FormView>
</div>
<asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=DBNezamEntities" DefaultContainerName="DBNezamEntities" EnableFlattening="False" EntitySetName="News" EntityTypeFilter="" Select="it.[Title], it.[Body]" Where="it.[ID]=@NewsID">
<WhereParameters>
<asp:QueryStringParameter Name="NewsID" QueryStringField="ID" Type="Int32" />
</WhereParameters>
</asp:EntityDataSource>

noroozifar
جمعه 12 مهر 1392, 20:49 عصر
مشکل حل شد اینو اضافه کردم به قسمت کدهای سی شارپ
protected void FormView1_DataBound(object sender, EventArgs e)
{
Label BodyLabel = (Label)FormView1.FindControl("BodyLabel");
BodyLabel.Text = BodyLabel.Text.Replace("\n","<"+"br/"+">");

}

noroozifar
پنج شنبه 09 آبان 1392, 12:51 عصر
سلام

من از دستور Replace استفاده کردم اما یک مشگکل است من در قسمت Body تگ های HTML را هم دارم و زمانیکه یک جدول به فیلد Body به صورت HTML وارد میکنم برای جدول هم فضای خالی ایجاد میکنه به نظرتان چه کارش باید کرد : کدها در مرورگر به این صورت می شوند قبل از تگ های جدول هم br اضافه کرده ؟
http://www.uplooder.net/img/image/58/325ed13a5a98aab1847ebfa498552130/2013-10-31_123731.png

noroozifar
پنج شنبه 09 آبان 1392, 13:39 عصر
مشکل حل شد فقط لازم بود کدهای جدول را همه کدهاش را در یک خط نوشته شود از کلید اینتر برای رفتن به خط بعد نوشتن مثلا <tr> استفاده نکنم همه در یک باشه مثلا <table><tr><td></td></tr></table>

گفتم تا اگر کسی مشکل بر خورد بتونه حلش کنه فقط یک نکته کوچولو داشت :لبخند:

mRizvandi
پنج شنبه 09 آبان 1392, 17:58 عصر
مشکل حل شد فقط لازم بود کدهای جدول را همه کدهاش را در یک خط نوشته شود از کلید اینتر برای رفتن به خط بعد نوشتن مثلا <tr> استفاده نکنم همه در یک باشه مثلا <table><tr><td></td></tr></table>

گفتم تا اگر کسی مشکل بر خورد بتونه حلش کنه فقط یک نکته کوچولو داشت :لبخند:

خیلی خوبه که خودتون راه حل رو پیدا کردین، ولی پیشنهاد می کنم این تغییر رو بدید



protected void FormView1_DataBound(object sender, EventArgs e)
{
Label BodyLabel = (Label)FormView1.FindControl("BodyLabel");
BodyLabel.Text = BodyLabel.Text.Replace("\r\n","<br>");
}


رفتن به خط بعد دارای دو کد اسکی 10 و 13 هست. شما باید هر دو رو با br جایگزین کنید.
اگر در زمان ویرایش یا ثبت این متن از کنترل CKEditor استفاده کنید، خودش همه چی رو مدیریت می کنه و نیازی نیست که شما Replace بزنید یا جداول رو درست کنید.
موفق باشید