如何在DataGrid BoundColumn单元格中允许html标签

时间:2018-12-06 09:28:01

标签: c# asp.net webforms

我有一个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>

0 个答案:

没有答案