Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 我可以延迟窗口打开吗?_Asp.net_Javascript_Ajax_Updatepanel - Fatal编程技术网

Asp.net 我可以延迟窗口打开吗?

Asp.net 我可以延迟窗口打开吗?,asp.net,javascript,ajax,updatepanel,Asp.net,Javascript,Ajax,Updatepanel,这是我的基本问题 用户单击保存按钮。 使用Ajax通过代码隐藏保存内容。 然后打开一个新窗口,从数据库加载内容 我只需要一种方法,不打开窗口,直到内容已保存。现在它会立即打开一个新窗口,内容还没有全部保存 有什么想法吗 编辑: 对不起,我想我应该说得更清楚些。我正在使用asp.net updatepanel,单击按钮会触发更新面板,将一些信息保存到数据库中,然后我想打开一个新窗口“预览”这些新数据。这就是我所拥有的,它不会断裂,但也不会打开新的窗口 protected void lnkPrevi

这是我的基本问题

用户单击保存按钮。
使用Ajax通过代码隐藏保存内容。
然后打开一个新窗口,从数据库加载内容

我只需要一种方法,不打开窗口,直到内容已保存。现在它会立即打开一个新窗口,内容还没有全部保存

有什么想法吗

编辑:
对不起,我想我应该说得更清楚些。我正在使用asp.net updatepanel,单击按钮会触发更新面板,将一些信息保存到数据库中,然后我想打开一个新窗口“预览”这些新数据。这就是我所拥有的,它不会断裂,但也不会打开新的窗口

protected void lnkPreview_Click(object sender, System.EventArgs e)
{
      temp1 control = UpdatePanel1.ContentTemplateContainer.FindControl("template") as temp1;
      control.saveContent();

      string script = "<script language='javascript'>window.open('/preview.aspx', '_blank');</script>";
      this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"ClientScriptStuff", script);
}
protectedvoid lnkPreview\u单击(对象发送方,System.EventArgs e)
{
temp1 control=UpdatePanel1.ContentTemplateContainer.FindControl(“模板”)作为temp1;
control.saveContent();
string script=“window.open('/preview.aspx','\u blank');”;
this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(),“ClientScriptStuff”,script);
}

将window.open()函数设置为来自AJAX结果的回调。

将window.open()函数设置为来自AJAX结果的回调。

您的AJAX调用允许您有一个完成回调,该回调将在服务器应答时执行

您需要调用
窗口。在那里打开

有关更多详细信息,请向我们显示您的代码


但是,要小心弹出窗口拦截器。

您的AJAX调用允许您有一个完成回调,该回调将在服务器应答时执行

您需要调用
窗口。在那里打开

有关更多详细信息,请向我们显示您的代码


但是,,谨防弹出式拦截器。< /P> < P>使用Ajax方法获取保存的响应,并在收到保存确认后打开窗口。

< P>使用Ajax方法获取保存的响应,并在收到保存确认后打开窗口。

< P>我会考虑立即打开一个空白/备选内容窗口。用户操作,然后在回调完成时设置窗口位置。这样,你应该对弹出块更有免疫力。

我会考虑在用户操作上立即打开一个空白/替代内容窗口,然后在回调完成时设置窗口位置。通过这种方式,您应该更不受弹出窗口阻塞的影响。

在ajax完成后使用回调将db内容加载到模式窗口中

使用jQuery和插件的示例如下:


我只想指出,您应该在上面的代码段中添加一个错误回调。您还应该防止多个表单提交。

在ajax完成后使用回调将db内容加载到模式窗口中

protected void lnkPreview_Click(object sender, System.EventArgs e)
{
         //Save the page content

         //Open a page to preview the changes
         ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(Page), "previewPage", "window.open('/preview.aspx');", true);
 }
使用jQuery和插件的示例如下:


我只想指出,您应该在上面的代码段中添加一个错误回调。您还应该防止多个表单提交。

这不会由用户操作启动,因此可能会被弹出窗口阻止程序阻止。这不会由用户操作启动,因此可能会被弹出窗口阻止程序阻止。我不会使用window.open()。还有其他更方便用户的选择。我不想使用window.open()。还有其他更为用户友好的替代方案。我知道你在做什么,但我正在尝试从updatepanel执行。我知道你在做什么,但我正在尝试从updatepanel执行。
protected void lnkPreview_Click(object sender, System.EventArgs e)
{
         //Save the page content

         //Open a page to preview the changes
         ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(Page), "previewPage", "window.open('/preview.aspx');", true);
 }