我在FormView上设置了CommandName =“ Update”的“保存”按钮。此按钮更新绑定到FormView的EntityDataSource。

更新EDS之后,我想关闭此(子窗口,弹出窗口)窗口并刷新我的父窗口(这样它将反映对数据所做的更改)。

作为参考,我在此页面上有一个类似的“取消”按钮,它仅调用Javascript函数“ OnClientClick”:

function done() {
   if (window.opener.closed) {
      self.close();
   } else {
      window.opener.focus();
      window.opener.location.href = opener.location;
      self.close();
   }
}


现在,我该如何让FormView和EDS进行操作(处理Update命令),然后调用此javascript函数(或代码来完成等效操作)?

经过更多的挖掘后,我解决了。问题与更新面板中的FormView有关。我必须使用以下内容:

ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, typeof(string), "done", "done();", true);

最佳答案

更新完成后,它将返回一个页面,您可以在其中注册功能。在您的Update命令处理程序中(假设这是在服务器端进行的),只需添加以下内容:

Page.RegisterStartupScript("AfterUpdate", "done();");


一旦Windows从update命令引起的回发中刷新,它将导致done() javascript函数运行。如果您的页面上没有done函数,请确保在将其定义为RegisterStartupScript调用之前添加了它的定义。

关于javascript - 更新formview后,我的按钮如何关闭窗口并刷新父项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3526126/

10-11 03:55