2010-12-10 7 views
2

J'ai une zone de texte multiligne dans ma page asp.net. lorsque l'utilisateur entre des données en ce que je stocke les données dans la table de base de données. maintenant quand je montre les données à la page l'ENTRÉE que l'utilisateur a pressé en entrant les données est perdue et toutes les données sont montrées dans la même ligne. donc je veux enregistrer les entrées pressées lors de la saisie des données et afficher les données sous la forme où il a été entré.plz aideComment préserver les entrées et les tabulations dans la zone de texte multiligne d'asp.net

Répondre

5

HTML collapses whitespace: les caractères de nouvelle ligne sont en effet stockés dans la base de données, mais sont rendus comme des caractères d'espace sur le page.

Vous pouvez remplacer les sauts de ligne avec <br /> éléments lors du rendu:

yourLabel.Text = Server.HtmlEncode(yourData).Replace("\n", "<br />"); 

Il n'y a pas de solution facile à restaurer les caractères de tabulation, bien que, à l'exception de rendre vos données dans un multiligne en lecture seule TextBox contrôle.

+0

cela a fonctionné pour moi tout en envoyant des emails HTML de C# – Ravimallya

+0

Parmi les nombreuses réponses sur Internet, cela a vraiment fonctionné pour moi. Merci mec. –

0

Remplacez le caractère d'entrée char (13) par la ligne de saut html < br/> lors de l'affichage des données.

lblDisplay.Text = GetTextFromDb().Replace(char(13),"<br/>"); 
0

En règle générale, lorsqu'un utilisateur appuie sur la touche de tabulation dans une zone de texte sur plusieurs lignes ou textarea, l'accent sautera à l'autre élément de page html, et par conséquent l'utilisateur ne sera pas en mesure d'ajouter un onglet à leur contribution. Si, toutefois, l'utilisateur copie et colle son texte à partir de Word par exemple, l'onglet sera conservé et enregistré dans la base de données SQL. Si tel est le cas, vous pouvez simplement ouvrir un document Word vierge, entrer un onglet, mettre l'onglet en surbrillance, le copier et le coller dans une instruction de remplacement, le remplacer par &nbsp ou un span css avec la marge gauche définie sur 20px. Il devrait ensuite s'afficher correctement lorsque vous affichez l'entrée en mode lecture. Le code suivant remplace les onglets et les nouvelles lignes dans l'entrée rendue.

objLabel = FindControl(strQuestionId) 
strReformattedText = reader("Answer").Replace(System.Environment.NewLine, "<br />") 
strReformattedText = strReformattedText.Replace(" ", "&nbsp;&nbsp;&nbsp;&nbsp;") 'Replace tab character with &nbsp; 
objLabel.Text = strReformattedText 
Questions connexes