У меня есть приложение для веб-форм asp.net.
Я хочу добавить html-теги в ячейку DataGrid
.Проблема в том, что DataGrid
не поддерживает HtmlEncode
свойство для BoundColumn
.И после того, как я щелкнул обновить, у меня появляется ошибка System.Web.HttpRequestValidationException
.
Я понимаю, что могу установить ValidateRequestMode
для DataGrid или ValidateRequest
для всей страницы, но я хочу установить это свойство только для одного столбца.
Как я могу разрешить вводить теги HTML для одного столбца?
ОБНОВЛЕНИЕ : Если использовать ItemTemplate, эта ячейка не сможет редактировать с OnEditCommand
.Мне нужен способ сделать его редактируемым, как и другие ячейки.
Моя сетка:
<asp:DataGrid runat="server" ID="MainGrid" AutoGenerateColumns="false" OnEditCommand="MainGrid_EditCommand" OnUpdateCommand="MainGrid_UpdateCommand" OnItemDataBound="MainGrid_ItemDataBound" OnSortCommand="MainGrid_SortCommand" AllowSorting="true" >
<Columns>
<asp:BoundColumn HeaderText="Id" DataField="ID" />
<asp:BoundColumn HeaderText="Name" DataField="Name"/>
<asp:BoundColumn HeaderText="Source" DataField="Source"/>
<asp:BoundColumn DataField="Is Active" HeaderText="Is Active" />
<asp:BoundColumn DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:TemplateColumn HeaderText="Additional info" SortExpression="Additional info" >
<ItemTemplate >
<asp:Literal Text='<%# DataBinder.Eval(Container.DataItem, "Additional info") %>
runat="server" ValidateRequestMode="Disabled" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Photo Path" HeaderText="Photo Path"/>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit"/>
<asp:ButtonColumn CommandName="Delete" HeaderText="Delete" Text="Delete"/>
</Columns>
</asp:DataGrid>
Код:
protected void MainGrid_EditCommand(object source, DataGridCommandEventArgs e)
{
MainGrid.EditItemIndex = e.Item.ItemIndex;
BindData();
}