1

テスト目的で、コントロール (ラベル、ボタンなど) とページのビューステートを無効にしました。

クライアント側でラベルのテキストを変更し、ボタンのクリック イベントをインターセプトすると、サーバーが以前に送信したテキストがラベルに表示されます。

それで、何が起こっているのですか?クライアント上のデータを変更し、サーバーで利用できるようにする必要があります。

これはどのように行われますか?

4

2 に答える 2

0

あなたがする必要があるのは、非表示の入力を追加することです。

フォームに次を追加します。

<asp:HiddenField runat="server" id="hiddenHolder" />

次に、クリック イベントのクライアントでラベルのテキストを変更するvalueと、hiddenHolder.

コードビハインドでは、次の値を取得できます。

string LabelText = hiddenHolder.Value;

このようにして、クライアントで行った変更がサーバーで利用可能になります

于 2013-03-18T21:44:03.390 に答える
0

spansラベルはクライアント側と同じようにレンダリングされます。そのため、変更は入力要素ではないため、サーバー側で変更をキャプチャすることはできません。

ASP.NET は、ViewState を使用してすべてのポストバックでこの情報を保存/取得するため、ラベルのテキストをプログラムで変更できるという錯覚を与えます。無効にすることで、この「機能」の使用をあきらめることになります。

于 2013-03-18T20:48:01.977 に答える