2010-10-10 55 views
-1

我有Datalist從數據庫中檢索文本的一部分,並且如果有以(。)開頭的新文本,此文本的格式必須是.as。 那麼我該怎麼做?從數據庫格式化文本

<asp:DataList ID="DataList1" runat="server"> 
           <ItemTemplate> 
            <div class="scrollerDiv_open_about m10 ad_mun_font"> 
             <asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("Id","~/Handlers/AboutUsImage.ashx?Id={0}") %>' 
              Width="178" Height="115" Style="float: left; padding: 10px 10px 0 10px" /> 
              <span class="ad_mun_font_h"><asp:Label 
               ID="LblHeader" runat="server" Text='<%# Eval("Header") %>'></asp:Label></span> 
               <p> 
             <asp:Label ID="LblText" runat="server" Text='<%# Eval("Text") %>'></asp:Label>.</p> 
            </div> 
           </ItemTemplate> 
          </asp:DataList> 

回答

2

只需使用替換法,如下所示:

// In your code, s would be filled in from the database. 
    string s = "This is trial text. I want a line break after a period character (.). I think this is what you mean but I am not certain." 

    s = s.Replace(".", ".\n\r") 

編輯:

既然你要綁定到數據源,這將是更好的對數據源,而不是直接作用。例如:

foreach (var x in myDataSource) 
{ 
    x.TextField = x.TextField.Replace(".", ".\n\r"); 
} 

myGridOrWhatever.DataSource = myDataSource; 
myGridOrWhatever.DataBind(); 

我不是VS開放,但我認爲這會工作,只要你只是使用myDataSource顯示的東西。如果您正在編輯網格中的數據或其他內容,則可能需要重新考慮這一點,但應該讓您開始。

+0

我試圖做到這一點,但它沒有工作,這是代碼。 – Myworld 2010-10-10 14:19:47

+0

protected void DataList1_ItemDataBound(object sender,DataListItemEventArgs e) { Label txt1 = e.Item.FindControl(「LblText」)as Label; string S = txt1.Text; S = S.Replace(「。」,「。\ n \ r」); } – Myworld 2010-10-10 14:20:47

+0

檢查我上面的修改。我認爲你應該在數據源級別編輯數據,儘管還沒有測試過...... – awrigley 2010-10-10 14:42:22