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

Javascript 将对象从子页面传递到父页面,javascript,asp.net,serialization,Javascript,Asp.net,Serialization,我有两个网页,父母和孩子。单击外接程序父项,我将打开弹出窗口,在其中输入详细信息并保存。保存后,我想刷新父网格中的数据。以下是我所想的方法 在保存时使用会话变量,并在父级上使用它 将值存储在子对象上的DB中,然后重试 在子对象中序列化对象,并在服务器上刷新时将其分配给partent hidden Variable,然后将其绑定到网格 我想从小组中了解做这件事的最佳方法是什么。我在考虑做第三步 我使用ASP.NET4.0和Jquery作为弹出窗口 如果希望在不重新加载的情况下快速更新父窗口,可以使

我有两个网页,父母和孩子。单击外接程序父项,我将打开弹出窗口,在其中输入详细信息并保存。保存后,我想刷新父网格中的数据。以下是我所想的方法

  • 在保存时使用会话变量,并在父级上使用它
  • 将值存储在子对象上的DB中,然后重试
  • 在子对象中序列化对象,并在服务器上刷新时将其分配给partent hidden Variable,然后将其绑定到网格 我想从小组中了解做这件事的最佳方法是什么。我在考虑做第三步


    我使用ASP.NET4.0和Jquery作为弹出窗口

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

    我想这样做:

  • 在子页面中保存等待 服务器响应和
  • 如果保存成功,请执行以下操作: parent.grid.reload(这非常重要 (但我希望你能理解这一点)
  • 如果保存不成功,您可以 做一些很好的异常/错误处理 在子页面上处理并再次询问 用于输入等
  • 一般来说(不是特别在asp.net中),我会让弹出窗口以一种或另一种方式发送“RefreshFromDB”信号到它的父窗口(使用window.parent)。 这样做的好处是确保父级获取保存的实际数据。否则,您将需要弹出窗口来检查保存是否成功,以及要发送给其父对象的对象是否正确


    编辑:正如另一个答案所说,实际上弹出窗口应该检查是否保存成功。尽管如此,我还是不会让它在调用者窗口上调用一个刷新方法,除非刷新的代价非常高昂。

    最好不要刷新主机。用户不会预料到这一点,可能会出现松动 主机上的某些状态,例如筛选/排序

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