DataTable和GridView中的换行符

时间:2012-05-04 13:39:59

标签: asp.net string gridview datatable

我实际上是在尝试使用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标签才有效。

您对我的错误有所了解吗?您有解决方案吗?我花了太多时间在这上面。

谢谢,

昆汀

4 个答案:

答案 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)

将网格列转换为模板列,标签将完成魔术。如果将数据绑定到标签,则可以使用。