2010-10-15 79 views
5

要求:我们有一个供用户提交的表格。 提交时,表单数据用于计算和生成报告。在回发上打开新窗口

回发时,显示确认消息和其他选项。 我们希望在新的窗口/选项卡中显示报告。

条件: 我们不想使用JavaScript上回发到打开一个新窗口onload因为这将阻止谁已禁用JavaScript的用户。

可能的解决方案:

  1. 打开按钮点击了一个独特的ID的新窗口(让回传发生代码执行)。新窗口应请求报告,但代码将等待直至生成报告。在报告页面上,显示等待消息,其超时并允许用户刷新或在元中使用页面刷新。
  2. 使用JavaScript,但检测回发时是否启用了JS(通过在表单加载上使用JS设置变量值),如果禁用JS显示指向用户的报告链接否则在回发后使用JS在页面加载时打开窗口。

问题:

  1. 有没有什么更好的方法来做到这一点?
  2. 提高以上解决方案的任何提示?
  3. 你会选择哪一个,为什么?

回答

3

建立与target=_blank的链接,该链接重定向到生成报告并显示它的页面。

要访问您的网站的IMO用户将启用JavaScript。不支持JavaScript的网页是不是网络,也许这是一个几年前,但现在......

如果你想测试JS,你可以回传后注册的脚本:

// normal postback 
ScriptManager.RegisterStartupScript(this, GetType(), "key", "script();", true); 

// postback from a updatepanel 
ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "key", "script();", true); 
1

检查如果js是enabled,并且启用了js,则使用ClientScript.RegisterStartupScript(this.GetType(), "yourScript", script, true);来执行您的js并打开您的报告页面。 如果js id未启用,则显示指向报告页面的链接。