2010-10-15 84 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未啓用,則顯示指向報告頁面的鏈接。