我在SQL Server数据库中有一个文本,其中包含new line character
和carriage return character
。当我将此值分配给字符串变量时,我可以在第一个屏幕截图中看到这些换行符和回车符。但是当它被渲染时,这些值不存在(如第二个屏幕截图所示)。
我们如何render
换行和回车字符在gridview中使用以下代码返回?
CODE
protected void Page_Load(object sender, EventArgs e)
{
List<Account> result = new List<Account>();
string value = DisplayTest("Daily Tax Updates:\r\n");
Account acc = new Account(){Description = value};
result.Add(acc);
grdFinancialAmount.DataSource = result;
grdFinancialAmount.DataBind();
}
public class Account
{
public string Description { get; set; }
}
private static string DisplayTest(string searchValue)
{
string test = String.Empty;
string connectionString = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string commandText = @"SELECT AccountType,*
FROM Account
WHERE AccountType LIKE @input ESCAPE '\'";
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.CommandType = System.Data.CommandType.Text;
command.Parameters.AddWithValue("@input", "%" + searchValue + "%");
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
test = reader.GetString(0);
}
}
}
}
}
return test;
}
MARKUP
<asp:GridView ID="grdFinancialAmount" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Text">
<ItemTemplate>
<%# Eval("Description")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
数据库中的变量值
渲染价值
答案 0 :(得分:1)
用\r\n
替换\\r\\n
应该可以正常工作。
我错误地解释了这一点,我想要显示\r\n
而不是字符返回,但正如评论所说,请替换为<br/>
。
string.Replace("\r\n", "<br/>");
答案 1 :(得分:0)
您的渲染值是html。将\r\n
放在html中可能会改变源html,但对渲染的内容完全没有影响。
您可以通过在渲染窗口上执行“查看源”来验证这一点。
在渲染之前,这里的一种方法是将所有\r\n
替换为<br/>
,这是一个强硬换行符。
或者您可以在字符串的前面添加<p>
标记,并在字符串末尾添加</p>
标记,然后将所有\r\n
次出现替换为{{1即将其拆分为段落。这可能是两者中更优雅的方法。
此处还有其他选项,你只需要知道你需要将你的crlf字符翻译成html可以理解的东西。