2

コンテンツの先頭のスペースを自動的にトリミングするテキスト ボックス Web コントロールがあるため、テキストを取得すると、ユーザーが最初に書いたものとは異なります (ユーザーが先頭のスペースを入力した場合)。

この機能を無効にする方法はありますか

4

3 に答える 3

1

デフォルトの動作をオーバーライドする唯一の解決策は、ユーザーが非表示フィールドに入力するたびに割り当てるjavascript関数を作成し、ボタンまたはポストバックイベントでその非表示フィールドの値をキャプチャすることです

<asp:TextBox runat="server" ID="TextBox1" onkeydown="document.getElementById('HiddenField1').value += this.value" ></asp:TextBox>

よろしく

于 2013-05-21T15:32:46.680 に答える
0

実は、これには別の回避策があるかもしれません。U+0020ASP.NET は( の Unicode コード ポイント)を置き換えることを目指してspaceいますが、たとえばU+00A0-などの他の空白文字についてはそうしませんno-break space

ASP.NETページで保持する必要があるスペース文字の繰り返しに問題がありましたRadTextBox(空白を保持することになると、通常のASPのように動作TextBoxします。つまり、1つの繰り返しスペースを除くすべてが失われます)。

したがって、次のようにテキストを設定すると:

txtName.Text = name.Replace(' ', '\u00A0');

次のようにテキストボックスからテキストを取得します。

name = txtName.Text.Replace('\u00A0', ' ');

ユーザーにとっては、テキストボックス内にスペースがあるように見え、ASP.NET はこれらのスペースのような文字を削除しません。

回答は次の回答に触発されました:   の代わりに使用できる最適な非表示文字は何ですか?

于 2015-05-07T12:22:10.863 に答える
0

空白を&nbsp;htmlに置き換える必要があります。

例えば

Dim TextWithSpaces As String = OriginalText.Replace(" ", "&nbsp;")

TextBox.Text = TextWithSpaces
于 2013-05-21T10:48:12.427 に答える