2010-12-02 1 views
1

私はダイアログを持っており、partialviewを含んでいます。 ユーザがダイアログをキャンセルして保存しないことを決定した場合、ダイアログ内でユーザが行った変更を元に戻すことはできますか?ダイアログコンテンツを更新する方法

ユーザーが同じダイアログを開くと、ユーザーがダイアログをキャンセルしても変更内容はそのまま残ります。 コントローラを呼び出して部分ビューを置き換えることが可能であることはわかっています。

他の方法はありますか?

答えて

1

sanke - partialviewが最初に読み込まれたときに、divの内容を.data()要素に格納することができます。その後、キャンセルした場合(保存せずに)、.data()をダイアログに作成されたdivに戻します。

行動は言葉よりも雄弁:

// the partial getting loaded 
$("#targetDiv").html(data); 
var foo = document.body; 
jQuery.data(foo, "myKey", data); 

を、あなたが逆の操作を行うことができ、キャンセルに:

// inside the dialog cancel event 
var foo = document.body; 
var data = jQuery.data(foo, "myKey"); 
$("#targetDiv").html(data); 

はそれを試してみる...

+0

ありがとうございました - – Karl

+0

うれしかったです;) –

0

を私は知りません多くのaspnet mvcについてですが、クライアントサイドとスクリプティングに関して知っている限り、ダイアログボックスでクライアント側を操作する限り、ダイアログボックスがページのDOMの一部であるため、すでに挿入されているものはそのまま残ります。この種の問題を回避するために、私は通常Dialoq内の異なるフィールドにセレクタを保持する 'ダイアログ'クラスを作成し、opendialogメソッドが呼び出されたとき、またはダイアログがキャンセルされたときにデフォルト値に初期化されます。それのプラスの価値は、あなたのためのあなたのクライアント側スクリプトのすべてのダイアログが1つのきちんとしたjavascriptクラスに含まれているということです。

関連する問題