我有一个asp.net网络表单应用程序。
我希望能够在DataGrid
单元内添加html标签。问题是DataGrid
的{{1}}不支持HtmlEncode
属性。在单击更新后,我遇到了BoundColumn
错误。
我知道我可以为DataGrid设置System.Web.HttpRequestValidationException
或为整个页面设置ValidateRequestMode
,但是我只想为一列设置此属性。
如何允许为单个列输入HTML标签?
更新:如果使用ItemTemplate,则此单元格将无法从ValidateRequest
进行编辑。我需要一种使其像其他单元格一样可编辑的方法。
我的网格:
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>