3

次の点を考慮してください。クライアントのテキストボックスに追加されたテキスト値は、ポストバック時にビューステートに追加されます(したがって、ページがリロードされても、値はテキストボックスに存在します)。

jqueryを介してリストボックス1からリストボックス2に値を移動すると、リストボックス2のアイテムがビューステートに追加されないのはなぜですか。(注:アイテムはPOSTの前に選択され、listbox2の値は、request.form.getvalues( "listbox2")。getvalue(index).tostring()を介してポストバック時にサーバーで使用できます)

私は回避策を探していません、私はそれを持っています。listbox2の値が追加されない「理由」を知りたいのですが。リストボックスではなく、テキストボックスに対して発生するイベントはありますか?何が起こっているのかをよりよく理解しようとしているだけです。ありがとう!

4

1 に答える 1

3

クライアントのテキスト ボックスに追加されたテキスト値は、ポストバック時にビューステートに追加されます (したがって、ページがリロードされても値はテキスト ボックスに存在します)。

このステートメントは正しくありません。サーバー コントロールの値はTextBox、ブラウザーがポスト データで送信するため、ポストバック間で保持されます。ポストバックではTextBox、値がポスト データからそのTextプロパティにコピーされます。を設定することで確認できるため、ビュー ステートは関係ありませんEnableViewState="False"TextBox(ここでは、が表示され、有効になっていると想定しています。そうでない場合、ブラウザーはその値を投稿データで送信せず、値を保持するにはビュー ステート必要です。)

jquery を介して listbox1 から listbox2 に値を移動すると、listbox2 の項目がビューステートに追加されません。

複数選択ListBoxサーバー コントロールの場合、ブラウザーは選択された各項目の値を投稿データで送信します。ポストバック時に、はポスト データの各値を調べ、コレクションListBox内の対応するアイテムを検索し、そのアイテムのプロパティを に設定します。認識されない値をコレクションに追加することはありません。代わりに、イベントの検証が有効になっている場合は、「無効なポストバックまたはコールバック引数」例外がスローされます。ここでも、ビュー ステートは関係ありません。ItemsSelectedTrueItems

于 2012-05-16T02:20:07.943 に答える