将对象从子页面传递到父页面

时间:2011-06-08 13:00:10

标签: javascript asp.net serialization

我有两个网页,父母和孩子。点击添加父母我打开弹出窗口,我将在其中输入详细信息并保存。保存后,我想刷新父Grid中的数据。以下是我正在思考的方法

  1. 在保存时使用会话变量并在父级上使用它。
  2. 将值存储在子级数据库中并对其进行检索。
  3. 在Child中对对象进行Serilize,并将其分配给服务器上的refresh de-serilze上的partent hidden varible并将其绑定到网格。
  4. 我想从小组了解到最好的方法是什么。我在考虑做第三个approcah?

    我正在使用ASP.NET 4.0和Jquery进行弹出窗口。

4 个答案:

答案 0 :(得分:1)

我想这样做:

  1. 子页面中的OnSave等待 服务器响应和
  2. 如果保存成功,请执行 parent.grid.reload(这是非常的 通用,但我希望你明白这一点)
  3. 如果保存不成功,你可以 做一些不错的异常/错误 处理子页面并再次询问 输入等

答案 1 :(得分:1)

最好不要刷新主人。用户不会期望并且可能会松动 主机上的某些状态,例如过滤/排序。

最好使用窗口与window.opener进行窗口通信,直接告诉master编辑或插入了哪些细节。

答案 2 :(得分:0)

如果您希望快速更新父窗口而不重新加载它,您可以使用window.parent.somevar = 'x'window.parent.someFoo()访问/修改父窗口范围内的变量/函数(假设它们位于同一个域中) 。但您仍然需要从其中一个窗口发出服务器请求,以便将其存储在数据库中。

答案 3 :(得分:0)

一般情况下(特别是在asp.net中)我只是让弹出窗口以某种方式向其父级发送“刷新数据库”信号(使用window.parent)。 这样做的好处是可以确保父级获取已保存的实际数据。否则,如果保存成功,并且它想要发送给其父对象的对象实际上是正确的,则需要弹出窗口来检查自身。

编辑:实际上,弹出窗口可能应该检查是否可以保存成功,正如另一个答案所说。我仍然不会在调用者窗口上调用刷新方法,除非刷新成本非常高。