Я строю DataTable динамически и пытаюсь добавить «ссылку» в DataRow (s), которые добавляю в DataTable.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>
Но HTMLв столбце кодируется, когда я связываю его с GridView.Есть ли способ добавить объект HyperLink или что-то подобное?
PS Это не в примере, но столбцы добавляются динамически (это означает, что я не знаю до рендеринга, сколько столбцов я 'будет иметь)
ОБНОВЛЕНИЕ # 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 при вставке «простого текста» в строки данных.