グリッドビューコントロールに2つのテキストボックスと1つのラベルがあり、2番目のテキストボックスのonblurイベント属性にjavascript関数を追加して結果をラベルに表示すると、関数は正常に機能し、結果がラベルに表示されます。グリッドデータをデータベースに保存すると、ラベルは0または空で返されますが、値、これを克服する方法を確認できます。
ありがとう、よろしく
グリッドビューコントロールに2つのテキストボックスと1つのラベルがあり、2番目のテキストボックスのonblurイベント属性にjavascript関数を追加して結果をラベルに表示すると、関数は正常に機能し、結果がラベルに表示されます。グリッドデータをデータベースに保存すると、ラベルは0または空で返されますが、値、これを克服する方法を確認できます。
ありがとう、よろしく
ラベルは「フォーム」コントロールとして構成されていないため、ViewStateに保持されません。非表示のテキストボックスを使用してそれを実現できます。おそらく、より良い方法があります。
ここにあなたの質問に答えるリンクがあります。
http://www.mikesdotnetting.com/Article/65/ViewState-form-fields-labels-and-Javascript
私が正しく理解している場合(間違っている場合は訂正してください)、クライアント(Javascript)によって変更されたときにサーバー入力フィールドコントロールのデータを処理するのはIPostBackDataHandler(詳細)です。ラベルコントロールは入力フィールドではないため、クライアントで行われた変更は保存されません。
上記のリンクからの引用は次のとおりです。
ViewStateの仕事は、サーバーコントロールの初期状態への変更を管理することです。これらの変更がサーバー上でプログラムによって行われる場合、またはユーザー操作によって行われた変更がサーバーに渡される場合です。これには、TextBoxやチェックボックスで選択した項目などのフォーム入力の値の復元は含まれません。フォームの値はViewStateによって管理されるという一般的な誤解があります。ではない。行ったことない。これらの値は、純粋にIPostBackDataHandlerによって管理および復元されます。
IPostBackDataHandlerは、従来のASP、PHPなどの他のサーバーサイドテクノロジーで育ったWeb開発者にとって大きな恩恵です。「昔」は、最初に投稿されたものを表示するために、すべてのフォームフィールドを手動で接続する必要がありました。値。これにより、サーバー側の検証に失敗した場合に、ユーザーにもう一度入力するための空のフォームが表示されなくなります。IPostBackDataHandlerは、それを二度と行う必要がないことを意味します。
別の回答で述べたように、非表示の値を使用してJavascriptによって行われた変更も保持する必要があります。