如何在GridView列中显示新行

我有以下C#函数:

public string CheckInCollection(long lngProvId) { //... foreach (var item in collList) { strColl += item.Id.ToString() + " (" + item.Title + ")" + "\r\n"; } return strColl; } 

以下C#函数:

 public void PopulateGridView(bool blType) { if (blType == false) { } else { strCollFinalized = "" + ddlContent.SelectedItem + "|" + CheckInCollection(Convert.ToInt64(ddlContent.SelectedItem.Value)) + ""; string[] strL = strCollFinalized.Split('|'); DataTable dt = new DataTable(); DataColumn dc = new DataColumn("Provider"); DataColumn dc1 = new DataColumn("Collection"); dt.Columns.Add(dc); dt.Columns.Add(dc1); DataRow dr = dt.NewRow(); dr[dc] = strL[0]; dr[dc1] = strL[1]; dt.Rows.Add(dr); gvData.DataSource = dt; gvData.DataBind(); } } 

生成gridview时,第二列显示在一行中,但是当我检查源时,它将显示在下一行中。

如何修改以便返回的字符串在新行中显示每个strColl

正如@ user2169261建议的那样,您可以添加
而不是\r\n

然后,您可以将要显示换行符的列的HtmlEncode属性设置为false

例如:

    

对于自动生成的列,您可以尝试以下方法(根据此答案 )

自己检查DataTable并为每列创建一个显式的BoundColumn:

 foreach (DataColumn column in dt.Columns) { GridViewColumn boundColumn = new BoundColumn { DataSource = column.ColumnName, HeaderText = column.ColumnName, HtmlEncode = false }; gvData.Columns.Add(boundColumn); } gvData.DataSource = dt; gvData.DataBind();