我实际上是在尝试使用c#在asp.net项目的字符串中放置换行符。我把这个String放在DataRow中,我将其添加到名为" ds"的数据中。一旦它&# 39;完成后我将这个数据ds链接到gridview。 这是我的代码:
risque.projet = dt.Rows[i]["fk_projet"].ToString();
risque.release = dt.Rows[i]["fk_release"].ToString();
//Create the String for adding to the row
String test = "Project:"+risque.projet+"<br>"+ "Release: "+risque.release;
drow["Description"] = test;
Label1.Text = test;
//Add the row to the datatable.
ds.Rows.Add(drow);
//Link the datatable to the gridview
GridView1.DataSource = ds;
GridView1.DataBind();
我想要这个输出:
项目:.......
推出:.......
但我总是:项目:....释放......
我尝试了很多解决方案: -System.Environment.NewLine - \ r \ n - \ n
编辑:我的gridView.I的代码在我的gridview中没有任何内容,因为所有内容都是在运行时创建的。
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
EnableSortingAndPagingCallbacks="True" PageSize="5">
<SelectedRowStyle Wrap="True" />
</asp:GridView>
但没有任何作用。只有当我在标签中显示我的字符串时,br标签才有效。
您对我的错误有所了解吗?您有解决方案吗?我花了太多时间在这上面。
谢谢,
昆汀
答案 0 :(得分:3)
应该将标记放入,但将列的HtmlEncode属性设置为false。默认情况下,所有字段都是HtmlEncoded,这当然会阻止html标签像html标签一样工作。
但是,如果你这样做,你将需要在代码隐藏中手动编码字段值以防止XSS。
"Project:" + Server.HtmlEncode(risque.projet )+ "<br />" + "Release: " + Server.HtmlEncode(risque.release)
(我更喜欢Anit-Cross-Site Scripting库将HtmlEncode实现为Server.HtmlEncode,但这是另一个主题。)
答案 1 :(得分:1)
在这种情况下,您可以使用回车符(vbCrLf)代替连接中断标记。
回车字符用于打印和显示功能。
但是,C#中不存在vbCrLf。 vbCrLf的值是&#34; \ r \ n&#34;。请试试以下内容。
string vbCrLf = "\r\n";
String test = "Project:" + risque.projet + vbCrLf + "Release: " + risque.release;
答案 2 :(得分:0)
我认为您需要:<br />
而不是<br>
答案 3 :(得分:0)
将网格列转换为模板列,标签将完成魔术。如果将数据绑定到标签,则可以使用。