0

jQueryでasp.netコントロールを無効にすると、コードビハインドで認識されないのはなぜだろうと思います。たとえば、次のような方法でTextBoxを無効にします。

$('#txtNumber').attr('disabled', true);

client-sdideでは正常に無効になりましたが、コードビハインドでは認識されず、Enabled=trueになっています。

この問題を解決する方法がわかりません。

編集:私はjqueryによる制御を無効にする方法を知っていますが、そうではありません、私の質問は、クライアント側でそれを無効にしたときに、その背後にあるコードで真の有効性があるのはなぜですか?

4

1 に答える 1

1

サーバー側のコントロールの状態(有効/無効)は、ポストバックが発生したときにビューステートから取得されます。クライアント側の入力要素を無効にすると、フォームが送信されたときに入力が持つ値が、ポストバックの一部としてブラウザによって送信されなくなります。

したがって、入力要素の無効化は、「ポストバックで送信しない」ことを意味します。クライアント側で変更しても、それに応じてビューステートが更新されることはありません。サーバー側で変更すると、ビューステートには無効になっているという情報が含まれ、それがポストバック間で保持されます。

于 2012-06-25T11:59:32.863 に答える