2009-03-30 11 views
0

J'ai essayé de poser cette question précédemment comment je n'ai pas reçu la bonne réponse. J'utilise un GridView dans la zone d'administration du site que j'ai conçu. J'utilise un DetailsView pour insérer des données dans la base de données, et le Gridview pour éditer et supprimer les données.Comment arrêter Gridview codant mon texte sur éditer

Ma requête est: Quand j'ajouter des données dans le DetailsView j'entre les données comme ceci: « PR Murphy & Associés » Notez le « & ». Ce qui se passe est que quand il affiche les données dans le gridview il l'affiche comme "PR Murphy & Associates" mais quand je clique sur le bouton d'édition il affiche "PR Murphy & amp Associates". Notez le symbole codé &.

Mon problème est que je ne veux pas que le code htmlencode le symbole & du tout. Je suis assez nouveau à ASP.NET et je ne suis pas sûr de savoir comment atteindre cet objectif.

IE Est le DetailsView codant la chaîne quand il insère les données dans la base de données. Quel code puis-je utiliser pour empêcher que cela se produise et quel événement devrais-je cibler?

Dans ma réponse précédente, il a été suggéré de définir HTMLEncode = "False" dans la grille. J'ai essayé cela avec un champ lié et cela n'a pas fait de différence. Aussi j'ai besoin de ce champ pour être comme un TemplateField dans le GridView afin que je puisse effectuer une gestion d'erreur sur les entrées. J'espère que cela a du sens et que quelqu'un peut me guider dans la bonne direction.

Merci

+0

Où est la question précédente? – rball

+0

http://stackoverflow.com/questions/696455/how-to-stop-gridview-column-from-automatically-encoding-html-entities – Jason

Répondre

0

Je suppose que vous pouvez faire avec votre modèle appeler une méthode qui remplacerait le & avec un & nouveau. Puisque vous voulez un TemplateField, ce serait le correctif de cinq minutes qui ne serait probablement pas le meilleur moyen mais qui fonctionnerait à la rigueur. Collez une partie du code pour pouvoir modifier/aider.

0

Si vous constatez que vous ne pouvez pas modifier le comportement du contrôle pour renvoyer la valeur non codée, vous pouvez être heureux d'en savoir plus sur HtmlDecode.

0

La valeur doit être être codée. Si votre valeur est AT&T, votre code HTML final devrait ressembler à:

<input type="text" value="AT&amp;T" /> 

Code postal et HTML si ce émis est pas ce que vous voyez.