更新formview后,我的按钮如何关闭窗口并刷新父窗口?

时间:2010-08-19 20:50:41

标签: javascript asp.net entity-framework gridview formview

我在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);

1 个答案:

答案 0 :(得分:0)

一旦更新完成,它应该返回一个你可以注册你的功能的页面。在Update命令处理程序中(假设这发生在服务器端),只需添加以下内容:

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

一旦Windows从更新命令引起的回发刷新,它将导致done() javascript函数运行。如果页面中尚未显示done功能,请确保在将其调用RegisterStartupScript来之前添加其定义。