0

ID フィールドにバインドされ、(さまざまな) 他のソース (この ID を介してリンク) からのレコードの編集を可能にするユーザー コントロールを開発しました。これは正常に機能していますが、フォームを保存するときにデータを保存するのに苦労しています.IDを「単に」書き戻すだけでなく、やるべきことがたくさんあります.

「内部更新」用のボタンを追加したくはありませんが、ASP.net メカニズムを十分に理解したいと思っていました。残念ながら、私はどこにもたどり着いていません(そして時間がなくなっています)ので、この統合を機能させる方法、どのイベントを確認するかなどについて、誰かが洞察を共有できることを願っています.

前もって感謝します :)

マイケル

編集:コメントをありがとう、私はアイデアの詳細を提供しようとしています:

<FormView...
   <EditItemTemplate...
      <table...
          <asp:Textbox text="<% Bind('bla1') %>...
          <uc1:MyControl id1="<%# Bind('bla2') %> editeable="True"...
          <asp:ImageButton CommandName="Update"...
...
   <ItemTemplate...
      <table...
          <asp:Textbox text="<%# Bind('bla') %>...
          <uc1:MyControl id1="bla" editeable="False"...

このユーザー コントロール uc1 は、(id1 に基づいて) 多数の関連レコードを表示します。また、編集モードでは、これらの「内部」レコードの編集/追加なども可能になります。さて、ユーザーはレコードを保存する「標準的な方法」を持っているので、別の場所で内部レコードをたまたま編集するという理由だけで、特別な保存方法を追加して干渉したくありません。ユーザーにとっては問題ではなく、UI も同じように動作する必要があります。つまり、内部的に保存する必要があります。しかし、ユーザーが保存したいことをどのように知ることができますか?また、これを処理するためのベスト プラクティスは何でしょうか? 含まれているコントロールの Update イベントについてユーザー コントロールに「通知」する方法はありますか? Update コマンドなどをカスタマイズして明示的にする必要がありますか?簡単に再利用できるように。

4

1 に答える 1

2

この問題を理解する方法は、Webフォームにボタンがありますが、ユーザーコントロールにはありません。次に、ボタンがクリックされたときに、ユーザー コントロールで行われた変更を保持します。この場合、ユーザー コントロールにすべての変更を保存するメソッドを作成し、フォームのボタンのクリック イベントからこのメソッドを呼び出してみませんか?

于 2009-09-02T14:01:32.530 に答える