У меня есть GridView, привязанный к объекту ObjectDataSource. У меня есть также поддержка редактирования, которая работает отлично. Тем не менее, я хотел бы безопасно отобразить текст HtmlEncode, поскольку мы разрешаем специальные символы в определенных полях. Это - cinch, чтобы сделать со стандартным BoundFields, поскольку я только установил HtmlEncode к истинному.
Но для того, чтобы настроить элементы управления проверкой, вместо этого нужно использовать TemplateFields. Как легко добавить HtmlEncoding для вывода этого пути? Это проект ASP.NET 2.0, поэтому я использую новые ярлыки привязки данных (например, Eval
и Bind
).
Что я хотел бы сделать, это примерно следующее:
<asp:TemplateField HeaderText="Description">
<EditItemTemplate>
<asp:TextBox ID="TextBoxDescription" runat="server"
Text='<%# System.Web.HttpUtility.HtmlEncode(Bind("Description")) %>'
ValidationGroup="EditItemGrid"
MaxLength="30" />
<asp:Validator ... />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelDescription" runat="server"
Text='<%# System.Web.HttpUtility.HtmlEncode(Eval("Description")) %>' />
</ItemTemplate>
</asp:TemplateField>
Однако, когда я пытаюсь это сделать, я получаю следующую ошибку:
CS0103: имя "Bind" не существует в текущем контексте