SPGridView, dados e método correto de garantir a segurança dos dados
Estou usando um SPGridView para apresentar alguns dados e habilitei a capacidade de filtragem que funciona muito bem. Até você escolher um item específico nos dados para filtrar ...
O item de dados em questão tem um apóstrofo na string (por exemplo, "esta é a string richards"), que faz com que o carregamento da página do aplicativo pós-filtro seja interrompido com o erro:
Syntax error: Missing operand after 's' operator.
Obviamente, os dados não são automaticamente feitos seguros ...
Os dados estão em uma tabela de dados e o SPGridView é alimentado usando uma fonte de dados de objeto usando a tabela de dados.
Qual o melhor método, ou correto, para garantir a segurança dos dados?
EDITAR:
Depois de muito ranger, encontrei uma resposta parcial, mas a questão ainda permanece.
A resposta parcial é: você pode tornar os dados seguros para o código de filtro, mas você não pode fazer com que pareça correto na GUI suspensa do filtro.
Adicionando BoundField.HtmlEncode = true; para a definição SPGridView não faz nada.
Usando HttpUtility.HtmlEncode na seqüência de caracteres não faz nada.
Substituindo manualmente todos os apóstrofos nos dados com oe comercial # 39; na inserção no DataTable permite que o filtro funcione bem, e os dados são exibidos corretamente no SPGridView, mas são exibidos com a string de substituição de html no menu suspenso do filtro, e não o caractere de apóstrofo. Esta é a solução parcial, e não é realmente utilizável, pois cria uma string de filtro horrível que é visível para o usuário final.
Eu ainda estou para encontrar uma solução completa para este problema, exceto para remover caracteres ofensivos dos dados, o que não é realmente uma solução.
Atenciosamente Richard