リピーターといくつかのフィールドを持つ更新パネルがあります。ユーザーがフィールドの詳細を記入すると、Viewstateに保持されているコレクションが移入され、リピーターにバインドされます。リピーターと編集可能なフィールドを持つUpdatePanel
これで、updatepanelが更新され、リピーターにユーザーがフォームに入力したばかりの値が新しい項目に含まれるようになりました。
また、そのリピーターの一部として編集ボタンがあり、これをクリックすると、ユーザーが最初に入力したデータがフォームフィールドに入力されます。
私がしたいのは、このデータを編集してアイテムを保存することですが、コレクション/ビューステートに追加するのではなく、ユーザーが選択したアイテムを編集してコレクション/ビューステートに反映させます。
例えば、2つのフィールドを持つフォームを想像:
名前: 年齢:私はボブと46を入力して保存しヒット
。
リピータには、「編集」ボタンが付いたボブ46のエントリが表示されるようになりました。ユーザーが編集ボタンをクリックすると、フォームフィールドにBobと46が再度入力されます。
ユーザーはそれからBob Age 47に変更し、保存をヒットします。今度はその代わりに2つのエントリ(Bob 46とBob 47)があります.Bob 46はBob 47に更新されます。
ほんとうに希望はありますが、私はその主旨を説明したと思いますそれ。重要なことは覚えておくと、これは更新パネルですべて起こっているので、Viewstateを使用してリピータに移入するコレクションを格納しています。
わかりません。上記のシナリオを前提とすると、ユーザーがフォームを記入しヒットすると、リピーターはデータバインドされます... viewstate /その他のデータソースが使用されていない場合はどうなりますか?私はおそらくそれをひどく説明したでしょうが、あなたがフォームが何回も何度も記入されると想像すれば、例えばBob 46、John 23、Mary 55など。これらはすべてリピータのデータソースに追加されますビューステート/セッションが使用されていない(と私はまだDBにコミットしたくない)場合、私はそれを行うのですか? – scaryjones
@scaryjones私は、あなたがUpdatePanelのためにViewState _specifically_を使用する必要はないということを明確にしましたが、そうでなければあなたのニーズに合っているかどうかは確かです。Repeaterコントロールを使用する場合は、サーバーサイドでItemCommandイベントを処理することで、ボタンクリックのすべてのロジックを処理します。そのハンドラでは、DBバックエンドではなくコレクションを更新できます。つまり、RepeaterではなくListViewまたはGridViewを使用することを検討しましたか?ロジックは少し直感的かもしれません。 – Andrew