TextMode가 MultiLine으로 설정된 ASP TextBox가 있습니다. 사용자가 텍스트에 줄 바꿈을 넣으려고 할 때 vbCrLf 문자를 유지하는 데 문제가 있습니다. 페이지의 단추를 누르면 컨트롤에서 텍스트를 가져 와서 String.Trim을 사용하여 트리밍 한 다음이 값을 개체의 String 속성에 할당합니다. 그러면이 값을 개체의 내부 String 변수에 할당합니다 개체에). 그런 다음 개체는 개인 내부 변수에서 값을 가져 와서 저장 프로 시저 호출 (SP 매개 변수는 nvarchar (4000) 임)을 사용하여 데이터베이스에 던집니다.Multiline TextBox의 vbCrLf는 .Trim()이 호출 될 때만 나타납니다.
ASPX 페이지 : 뒤에
<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>
코드 :
ProjectRequest.StatusComments = txtComments.Text.Trim
객체 속성 :
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
저장된 프로 시저 호출 :
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))
가장 이상한 부분이 있습니다. 내가 입력하는 경우, 코드를 디버깅 할 때
코멘트 텍스트 상자에 "테스트
테스트"(따옴표없이)
, 다음 버튼을 저장하고 같은 변수 값을 보려면 직접 실행 창을 사용을 클릭하십시오 단계별로 살펴보면 다음과 같습니다.
?txtComments.Text
"test test"
?txtComments.Text.Trim
"test
test"
?txtComments.Text(4)
"
"c
?txtComments.Text.Trim()(4)
"
"c
여기에 무슨 일이 일어나는지 실마리가 있습니까?
문제가 있거나 계속 진행되고 있는지 궁금하십니까? – lincolnk
나는 그것을 검사했다. 그러나 나는 양쪽 경우 모두에서 "test test"를 얻었다. –