如何在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();