J'ai une zone de texte ASP avec TextMode définie sur MultiLine. J'ai des problèmes avec la préservation des caractères vbCrLf lorsqu'un utilisateur essaie d'insérer des sauts de ligne dans le texte. Quand un bouton sur la page est pressé, je prends le texte du contrôle, l'ajustant en utilisant String.Trim, et assignant cette valeur à une propriété String sur un objet (qui, à son tour, l'assigne à une variable String interne privée sur l'objet). L'objet prend alors la valeur de la variable interne privée et la jette dans la base de données en utilisant un appel de procédure stockée (le paramètre SP dans lequel il est placé est un nvarchar (4000)).vbCrLf dans Multiline TextBox apparaît uniquement lorsque .Trim() est appelé
ASPX Page:
<asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional"
ChildrenAsTriggers="true">
<ContentTemplate>
<!-- some other controls and things -->
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtComments" Width="100%" Height="60px" CssClass="TDTextArea" Style="border: 0px;" MaxLength="2000" />
<!-- some other controls and things -->
</ContentTemplate>
</asp:UpdatePanel>
Code
derrière:
ProjectRequest.StatusComments = txtComments.Text.Trim
propriété d'objet:
Protected mStatusComments As String = String.Empty
Property StatusComments() As String
Get
Return mStatusComments.Trim
End Get
Set(ByVal Value As String)
mStatusComments = Value
End Set
End Property
stockées appel proc:
Common.RunSP(mDBConnStr, "ProjectStatusUpdate", _
Common.MP("@UID", SqlDbType.NVarChar, 40, mUID), _
Common.MP("@ProjID", SqlDbType.VarChar, 40, mID), _
Common.MP("@StatusID", SqlDbType.Int, 8, mStatusID), _
Common.MP("@Comments", SqlDbType.NVarChar, 4000, mStatusComments), _
Common.MP("@PCTComp", SqlDbType.Int, 4, 0), _
Common.MP("@Type", Common.TDSqlDbType.TinyInt, 1, EntryType))
Voici la partie la plus étrange. Quand je déboguer le code, si je tape
« test
test »
(sans les guillemets) dans la zone de texte de commentaires, puis cliquez sur le bouton Enregistrer et utilisez la fenêtre immédiate pour afficher les valeurs variables comme Je traverse, voici ce que je reçois:
?txtComments.Text
"test test"
?txtComments.Text.Trim
"test
test"
?txtComments.Text(4)
"
"c
?txtComments.Text.Trim()(4)
"
"c
Quelqu'un sait ce qui se passe ici?
avez-vous un problème ou vous vous demandez simplement ce qui se passe? – lincolnk
Je l'ai vérifié mais j'ai eu "test de test" dans les deux cas –