1

这是交易。我的数据库中有一些nvarchar文本有CHAR(10) + CHAR(13)换行符。我正在使用一个<asp:repeater>来显示和设置数据库内容的样式。这是我的 aspx 页面的样子:

<asp:Repeater ID="myRepeater" runat="server">
        <ItemTemplate>
            <div class="dataTiltle">
                <%#Eval("datatitle") %> <br />
            </div>
            <div class="dataMain">
                <%#Eval("datamain") %>
            </div>
        </ItemTemplate>
        <SeparatorTemplate>
            <hr />
        </SeparatorTemplate>
</asp:Repeater>

以下是我从数据库中获取信息的方式:

SqlCommand comm = new SqlCommand("SELECT * FROM table", conn);
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
myRepeater.DataSource = reader;
myRepeater.DataBind();
reader.Close();

nvarchar我正在谈论的s 在该部分中datamain。现在我的问题是我找不到显示文本换行符的方法。文本以直线显示,直到它们到达末尾。div但是我希望文本自己的换行符也出现。我该怎么办?

4

3 回答 3

3

您可以在代码中编写一个函数来执行您的逻辑。在其中,您只需替换CHAR(10) + CHAR(13)从数据库中获取的字符<br/>

<asp:Repeater ID="myRepeater" runat="server">
    <ItemTemplate>
        <div class="dataTiltle">
            <%#Eval("datatitle") %> <br />
        </div>
        <div class="dataMain">
            <%#Your_Function_Name(Eval("datamain")) %>
        </div>
    </ItemTemplate>
    <SeparatorTemplate>
        <hr />
    </SeparatorTemplate>
</asp:Repeater>

然后从后面的代码编写你的公共函数:

public string Your_Function_Name(string datamain)
{
//now u have the value from DB in datamain. Do your required logic here then return the required value
}
于 2013-07-13T11:07:03.080 回答
0

当使用 HTML“<br/>”呈现从数据库读取的字符串时,您可以替换回车/换行序列。

假设您在一个名为 FormatAsHtml() 的函数中执行此操作...您可以如上所述从中继器中调用它。

您可以使用 string.Replace(@"\n\r", "<br/>") 进行替换。

于 2013-07-13T10:58:51.643 回答
0

使用 string 的 replace 方法替换 Char(10) 和 Char(13) 的所有出现,然后将其分配给您的转发器控件。如果您想在不使用上述方法的情况下编辑数据,那么您应该在从数据库格式化后获取数据。

于 2013-07-13T10:58:52.003 回答