2011-06-08 113 views
1

我有兩個網頁,父母和孩子。在父母點擊添加我打開彈出窗口,我將在哪裏輸入細節並保存。保存後,我想刷新父網格中的數據。以下是我正在考慮的許可將對象從孩子傳遞給父頁

  1. 使用會話變量保存並在父級上使用它。
  2. 將值存儲在數據庫中的孩子上並對其進行檢索。
  3. Serilize Child中的對象並將其分配給服務器上的refresh de-serilze上的partent hidden varible,並將其綁定到網格。

我想從組中知道做這件事的最好方法是什麼。我正在考慮做第三個準備?

我使用ASP.NET 4.0和JQuery作爲彈出窗口。

回答

0

如果您想要在不重新加載父窗口的情況下進行快速更新,則可以使用window.parent.somevar = 'x'window.parent.someFoo()訪問/修改父窗口範圍內的變量/函數(假設它們在同一個域中)。但是您仍然需要從其中一個窗口發出服務器請求,以便將其存儲在數據庫中。

1

我想這樣來做:

  1. 的OnSave兒童頁等待 服務器響應和
  2. 如果保存成功做 parent.grid.reload(這是很 通用的,但我希望你明白了吧)
  3. 如果保存不成功,你可以做 一些不錯的異常/錯誤 處理兒童網頁上,並再次 要求輸入等
0

在一般情況下(不是專門在asp.net中),我只是讓彈出窗口以某種方式向父窗口發送「從數據庫刷新」信號(使用window.parent)。 這樣做的好處是可以確保父級獲取已保存的實際數據。否則,如果保存成功,並且它想要發送給其父項的對象實際上是正確的,則需要彈出窗口檢查自身。

編輯:其實彈出窗口應該可能檢查保存成功,因爲另一個答案說。儘管如此,除非刷新代價極高,否則我不會在調用者窗口中調用刷新方法。

1

最好不要刷新主人。用戶不會期望這種情況,並且可能會在主服務器上釋放一些狀態,例如過濾/排序。

最佳使用窗口與window.opener進行窗口通信,以直接告訴主要哪些細節被編輯或插入。

相關問題