Javascript在<,比;在GridView编辑框中
本文关键字:编辑 GridView Javascript | 更新日期: 2023-09-27 18:03:52
我有一个Asp。UpdatePanel中的GridView。除了其中一列包含HTML特殊字符(如<
和>
)外,一切正常。GridView绑定到一个List<Entity>
,而Entity类有一个属性Regex
,它是一个System.Text.RegularExpressions.Regex
。
一开始是这样的:
<asp:TemplateField HeaderText="RegEx">
<ItemTemplate>
<asp:Label ID="RegExLabel" runat="server" Text='<%#Eval("Regex") %>'
ToolTip='<%#Eval("Regex") %>' Width="102px" CssClass="Wrap" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="RegExTextBox" runat="server" Text='<%#Eval("Regex") %>'
Width="98px" />
</EditItemTemplate>
</asp:TemplateField>
当不编辑时,(?<capture>'d+)
的值显示?'d+
,当编辑这一行时,我得到了一个脚本错误,编辑,更新和取消按钮不再工作。
然后我试着回答这个问题,得到了这个:
<asp:TemplateField HeaderText="RegEx">
<ItemTemplate>
<asp:Label ID="RegExLabel" runat="server"
Text='<%#System.Web.HttpUtility.HtmlEncode(Eval("Regex").ToString()) %>'
ToolTip='<%#System.Web.HttpUtility.HtmlEncode(Eval("Regex").ToString()) %>'
Width="102px" CssClass="Wrap" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="RegExTextBox" runat="server"
Text='<%#System.Web.HttpUtility.HtmlEncode(Eval("Regex").ToString()) %>'
Width="98px" />
</EditItemTemplate>
</asp:TemplateField>
这稍微好一点,因为工具提示和非编辑版本正确显示,但是当我开始编辑时,我看到:(?<capture>'d+)
和原始的HTML实体显示。有人知道一种方法来编码的值(停止脚本错误),同时仍然显示他们正确没有HTML实体在他们的原始状态编辑时?
<asp:TemplateField HeaderText="RegEx">
<ItemTemplate>
<asp:Literal Mode="Encode" ID="RegExLabel" runat="server" Text='<%#Eval("Regex") %>'
ToolTip='<%#Eval("Regex") %>' Width="102px" CssClass="Wrap" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="RegExTextBox" runat="server" Text='<%#Eval("Regex") %>'
Width="98px" />
</EditItemTemplate>
</asp:TemplateField>
并在page指令中添加ValidateRequest="false"