Asp.net DataTable和GridView中的换行符
实际上,我正在尝试使用c在asp.net项目中的字符串中放置换行符。我将此字符串放置在数据行中,并将其添加到名为ds的数据表中。完成后,我将此数据表ds链接到gridview。 这是我的代码:Asp.net DataTable和GridView中的换行符,asp.net,string,gridview,datatable,Asp.net,String,Gridview,Datatable,实际上,我正在尝试使用c在asp.net项目中的字符串中放置换行符。我将此字符串放置在数据行中,并将其添加到名为ds的数据表中。完成后,我将此数据表ds链接到gridview。 这是我的代码: risque.projet = dt.Rows[i]["fk_projet"].ToString(); risque.release = dt.Rows[i]["fk_release"].ToString(); //Create t
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的代码。我的gridView中没有任何内容,因为所有内容都是在运行时创建的
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
EnableSortingAndPagingCallbacks="True" PageSize="5">
<SelectedRowStyle Wrap="True" />
</asp:GridView>
但什么都不管用。br标记有效,但仅当我在标签中显示字符串时有效
你知道我的错误吗?你有解决办法吗?我在这上面花了太多时间
谢谢,
Quentin将标记放入,但将列的HtmlEncode属性设置为false应该可以工作。默认情况下,所有字段都是HtmlEncoded,这当然会阻止html标记像html标记一样工作 但是,如果要执行此操作,则需要在代码隐藏中手动对字段值进行htmlencode,以防止XSS
"Project:" + Server.HtmlEncode(risque.projet )+ "<br />" + "Release: " + Server.HtmlEncode(risque.release)
与Server.HtmlEncode相比,我更喜欢库的HtmlEncode实现,但这是另一个主题。将标记放入,但将列的HtmlEncode属性设置为false应该可以工作。默认情况下,所有字段都是HtmlEncoded,这当然会阻止html标记像html标记一样工作 但是,如果要执行此操作,则需要在代码隐藏中手动对字段值进行htmlencode,以防止XSS
"Project:" + Server.HtmlEncode(risque.projet )+ "<br />" + "Release: " + Server.HtmlEncode(risque.release)
与Server.HtmlEncode相比,我更喜欢库中的HtmlEncode实现,但这是另一个主题。我认为您需要:在本例中,您可以使用回车符vbCrLf,而不是连接中断标记 回车字符用于打印和显示功能 但是,C中不存在vbCrLf。vbCrLf的值为\r\n。试试下面这个
string vbCrLf = "\r\n";
String test = "Project:" + risque.projet + vbCrLf + "Release: " + risque.release;
在本例中,您可以使用回车符vbCrLf,而不是串联断开标记 回车字符用于打印和显示功能 但是,C中不存在vbCrLf。vbCrLf的值为\r\n。试试下面这个
string vbCrLf = "\r\n";
String test = "Project:" + risque.projet + vbCrLf + "Release: " + risque.release;
将网格列转换为模板列,标签将发挥神奇的作用。如果将数据绑定到标签,则将工作。将网格列转换为模板列,标签将发挥神奇的作用。如果将数据绑定到标签,则该选项将起作用。您好,David,您的解决方案很好,但您的行不起作用。我仍在搜索解决方案。显然,我必须使用server.htmlEncode.Ah.初始化gridview的单元格。。我懂了。您让运行时自动生成列。我认为您需要设置AutoGenerateColumns=false并指定列。不能从代码隐藏中指定HtmlEncode。我唯一的另一个选择是使用TemplateField,这同样意味着指定列。谢谢David,我刚刚找到了解决方案。我将发布它。非常好!我期待着看到它!您好,大卫,您的解决方案很好,但您的线路也不起作用。我仍在搜索解决方案。显然,我必须使用server.htmlEncode.Ah.初始化gridview的单元格。。我懂了。您让运行时自动生成列。我认为您需要设置AutoGenerateColumns=false并指定列。不能从代码隐藏中指定HtmlEncode。我唯一的另一个选择是使用TemplateField,这同样意味着指定列。谢谢David,我刚刚找到了解决方案。我将发布它。非常好!我期待着看到它!您能为Gridview显示aspx代码吗?您能为Gridview显示aspx代码吗?