GridView中的C#HTML标记

Geo*_*Ego 3 html c# sql asp.net gridview

我有一个我在C#中编写的SharePoint Web部件,用于根据用户选择显示SQL Server数据.我使用DataReader提取数据,用它填充DataSet,并将DataSet设置为GridView中的DataSource,并将该控件添加到我的页面:

GridView outputGrid = new GridView();
outputGrid.CssClass = "OutputGrid";
outputGrid.DataSource = flipped_ds1;
outputGrid.RowDataBound += outputGrid_RowDataBound;
outputGrid.DataBind();
Controls.Add(outputGrid);
Run Code Online (Sandbox Code Playgroud)

这给了我一个带有声明的CSS类的简单HTML表,就是它.我面临的唯一问题是数据字段中的换行符根本没有呈现.我只是得到一个文本块,忽略了数据库呈现为HTML时存在的中断.在单步执行代码时,我看到换行符以"\ r \n"的形式作为文本进入.我尝试了一个正则表达式:

Regex rgx = new Regex("\r\n");
string inputStr = Convert.ToString(dr[x]);
string outputStr = rgx.Replace(inputStr, "<br />");
newRow[ds3.Tables["Bobst Specs 3"].Columns[x]] = outputStr;
Run Code Online (Sandbox Code Playgroud)

虽然它确实检测并替换换行符,但我只是得到
没有换行符的文本" ".在查看HTML源代码时,它会在我指定"
"的位置插入以下行:

&lt;br /&gt;
Run Code Online (Sandbox Code Playgroud)

我还尝试将我的SQL查询更改为以下内容:

SELECT REPLACE (fldCustomerName, '. ', '.' + @NewLineChar)
Run Code Online (Sandbox Code Playgroud)

这显然会带来更多新的线条.我可以看到它们存在,因为如果我也插入正则表达式它们会受到影响,但不会创建换行符.我不知道如何更换这些,以及如何更换线条来实际打破.

Kro*_*ass 14

在网格视图中禁用所需列中的HTML呈现

<asp:BoundField DataField="MyColumn" HtmlEncode="false" />
Run Code Online (Sandbox Code Playgroud)

并在现场
为您的文本添加新行

更新:我理解的是新的线条没有显示在gridview中,然后你试图通过替换\n来强制它<br />,我同意你的意见.但是br标签转换成html实体的下一个问题.并且您没有在gridview中使用强定义的列.它是自动生成列.如果是这样,你所有的步骤都是正确的,还有一件事要做

在自动生成的GridView列中阻止HTML编码