データベースのフィールドを編集するためのフォームを含むページを設計しています。最初は FormView コントロールを使用していましたが、さまざまな理由から、代わりに DetailsView コントロールに変更しました。これらは、表示するフィールドごとに Boundfield を追加するだけなので、コーディングがはるかに迅速で、コードがより整然としています。テキストボックス、ラベルなどはありません。これまでのところとても良いです。
ただし、FormViews のすべてのテキスト ボックスには、JavaScript 関数を呼び出すonchangeプロパティが指定されていました。基本的には、変更が行われ、保存が必要であることをユーザーに警告するメカニズムであり、完全に機能しました。
残念ながら、 onchangeプロパティを DetailsView Boundfield に追加することはできません。DetailsView の DataBound イベントのコード ビハインド (VB) にプログラムで追加しようとしました。ページが読み込まれると Boundfields がテキスト ボックスとしてレンダリングされるという理論に取り組んでいますが、期待どおりに動作しません。
Boundfield のテキストが変更されたときに JavaScript 関数を呼び出して、FormViews のテキストボックスの機能を複製する方法を誰かが提案できますか? できれば、DetailsViews と Boundfields を使い続けたいと思っています。そして、コード ビハインドでこれを達成できた場合、おそらくフィールドを反復処理して機能を追加すると、すべての Boundfield に対して宣言的に追加するのではなく、DetailsView ごとに数行のコードしかないことになります (たくさんあります!)。