J'utilise un SPGridView pour présenter certaines données, et j'ai activé la capacité de filtrage qui fonctionne très bien. Jusqu'à ce que vous choisissiez un élément particulier dans les données à filtrer ...SPGridView, données et méthode correcte pour assurer la sécurité des données
L'élément de données en question a une apostrophe dans la chaîne (par exemple, "ceci est la chaîne de richards"), ce qui provoque la page d'application post-filtre charge de mourir avec l'erreur:
Syntax error: Missing operand after 's' operator.
Il est évident que les données ne sont pas automatiquement sécurisée ...
les données se trouve dans une table de données, et le SPGridView est alimenté au moyen d'un ObjectDataSource en utilisant la table de données.
Quelle est la meilleure ou la meilleure méthode pour garantir que les données sont sécurisées?
EDIT:
Après beaucoup de grincements, j'ai trouvé une réponse partielle, mais la question reste encore. La réponse partielle est - vous pouvez sécuriser les données pour le code de filtre, mais vous ne pouvez pas le rendre correct dans le menu déroulant du filtre.
Ajout de BoundField.HtmlEncode = true; à la définition SPGridView ne fait rien.
L'utilisation de HttpUtility.HtmlEncode sur la chaîne ne fait rien.
Remplacer manuellement toutes les apostrophes dans les données avec l'esperluette # 39; lors de l'insertion dans DataTable, le filtre fonctionne correctement et les données s'affichent correctement dans SPGridView, mais elles s'affichent avec la chaîne de remplacement html dans la liste déroulante du filtre, et non le caractère apostrophe. C'est la solution partielle, et elle n'est pas vraiment utilisable car elle crée une horrible chaîne de filtre visible par l'utilisateur final.
Je suis encore à trouver une solution complète à ce problème, sauf pour supprimer les caractères fautifs des données tout à fait, ce qui n'est pas vraiment une solution.
Cordialement Richard
C'est une question que je lu, mais nulle part I'v vu une meilleure solution que vous avez trouvé. –