我正在动态构建一个数据表,并尝试在要添加到数据表的数据行中添加一个“链接”。 DataTable 在创建后绑定到 GridView。
像这样的东西:
DataTable dataTable = new DataTable();
foreach (Item item in items)
{
DataRow row = dataTable.NewRow();
dataTable.Columns.Add(new DataColumn("col"));
row["col"] = "<a href='http://www.google.com'>Link here</a>";
dataTable.Rows.Add(row);
}
然后我将它绑定到 GridView :
<asp:GridView ID="grdView" Runat="server" border="0" EnableViewState="true" style="width:100%;"
AutoGenerateColumns="true" AllowPaging="false" PagerSettings-Visible="false"
ShowHeader="true" ShowFooter="true" CellPadding="0" CellSpacing="0"
Visible="True">
</asp:GridView>
但是,当我将 Column 绑定到 GridView 时,会对 Column 中的 HTML 进行编码。
有没有办法在那里添加超链接对象或类似的东西?
附:它不在示例中,但列是动态添加的(这意味着我在渲染之前不知道我将拥有多少列)
更新#1
创建列时我可以访问 GridView。
我能够做这样的事情:
dataTable.Columns.Add(new DataColumn("col"));
BoundField bf = new BoundField();
bf.HtmlEncode = false;
bf.DataField = "col";
grd.Columns.Add(bf);
row["col"] = "<a href='http://www.google.com'>Link here</a>";
但它显示 2 列“col”...
更新#3:我改用了 DataGrid。当插入数据行中的“纯文本”时,它不会对 HTML 进行编码。
如果您从查询中返回 html 代码,只需使用htmlEncode=False
在你的边界上。还要在 gridview 上设置 AutoGenerateColumns="false",这就是为什么你的 gridview 上会出现双列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)