2

コードファイルで汎用リストにバインドされたFormviewがあります。ここで、レコードを編集するときに、イベントハンドラーメソッドのFormViewUpdateEventArgsパラメーターからKeysとNewValuesにアクセスしたいと思います。ItemUpdating

私が今のところインターネットで試し、検索したところ、更新された値は、Formviewがマークアップページでデータソース管理に設定されている場合にのみ利用可能であり、そうでない場合はnullになることがわかりました。これは本当ですか?

次に、この時点で、senderオブジェクトをformviewにキャストし、FindControlメソッドを使用してコントロールに存在する値を検索および取得することにより、各オブジェクトのプロパティを個別に入力しています。これはこのタスクを実行するための最良の方法ですか?

例として、これは私がatmで行っていることです。

FormView currentForm = (FormView)sender;
ListObject.ID = new Guid(((HiddenField)(currentForm.FindControl("hdnID"))).Value);
ListObject.Name = ((TextBox)(currentForm.FindControl("txtName"))).Text;

助けてくれてありがとう!

4

1 に答える 1

0

あなたの行動に基づいて、FormView を使用しないことをお勧めします。FormView は、データソースを操作する場合は優れていますが、手動でバインドされたデータを処理する場合、基本的にフォームをオーバーライドして手動で構築する場合は失敗します。HTML フォームと ASP.Net サーバー サイド コントロールを作成するだけの方が簡単です。

FindControlコストのかかる操作であり、扱いにくくなる可能性があります。データのループ中にサーバー側のコントロールに値を単純に割り当てると、より高速になります。

または、提案されているように、 a を使用してObjectDataSource、その方法でデータを FormView にバインドします。

于 2011-01-20T15:33:09.023 に答える