2

我的 gridview 自定义编码中有一些这些事件。但这里真正的问题是我存储了以前的记录,即正在更改的记录,或者 old.value 并将其存储在另一列中。因此,当用户输入不带引号的“< newValue >”时,aspx 验证器会将输入视为危险而拒绝。

我可以禁用验证,并在将值写入数据库时​​对值进行 html 编码,但是当我在“上一个值”列的 gridview 中显示该值时,它看起来像这样...... < 中性 > 缺少分号因为这个网站解码。

如何在 ASPX 中内联编码和解码?

我如何编码这个进入gridview的模板字段?

<EditItemTemplate>
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("lang_String") %>'></asp:TextBox>
</EditItemTemplate>

我想只允许在此字段中输入某些 html 字符而不关闭整个站点的验证。

我确实需要将其应用于整个专栏。

谢谢你,

4

1 回答 1

1

我找到了一个可行的解决方案来解决这个问题。在后面的代码中,输入如下调用一个函数来处理html编码......

<Columns> 
<asp:TemplateField> 
  <ItemTemplate> 
      <asp:Label ..... Text='<%# DecodeIT(Eval("FirstName").ToString())%>' /> // for "decoding" 
 </ItemTemplate> 
 <EditTemplate> 
      <asp:TextBox id="TextBox1" runat="server" /> // for "encoding" 

这里是函数...

Private Function DecodeIT(firstName As String) As String
Return HttpUtility.HtmlDecode(firstName)
End Function

大多数其他解决方案建议在 Page 指令或 web.config 中禁用验证,这不是解决此问题的最佳实践。

使用这样的功能是最好的方法。

于 2012-04-16T13:08:48.167 回答