2011-06-08 79 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进行窗口通信,以直接告诉主要哪些细节被编辑或插入。

相关问题