2015年11月3日 星期二

[.js]Response.Redirect 轉跳頁面(配合javascript效果)

最近工作上開始瘋狂用到javascript
老實說對js並沒有到非常熟
以前也大概只是一些欄位檢核而已

這兩天被一個問題給困擾著
有一支.aspx的程式,使用user control去呼叫一支.ascx,程式一進入去呼叫外部URL
簡單說就是要維持header 和footer,把網頁遷入在中間

問題來了
header上面有menu選單
正常切換到每個頁面時menu會顯示目前的頁面
但發現使用ascx.cx在page_load時  
Response.Redirect呼叫URL
在這個寫法下,前端的.ascx引用javascript根本沒用

找了很久
終於看到類似的一篇
http://tgw1029.blogspot.tw/2010/03/alertresponseredirectscriptmanager-ajax.html

相信裡面的說明已經非常清楚了
原因是因為javascript是在cilent端執行的
但Response.Redirect會先將網頁導到我要的頁面,所以本來的js程式並不會執行

果然和連結裡面所說的將以上功能都使用js寫入就可以了
我自己後來是寫在.cs裡面(因為還要引用web.config的參數),如果全部寫在.ascx裡面有沒有辦法不知道就是了

另外也因為這個例子發現
如果要把js寫在.cs裡面
包含所有需要用到的js都要先在引用一次
 Response.Write("<script src='XXXXXXXX.js'></script>");
看起來如果直接用是不行的
儘管有在.ascx宣告了

改天再找時間來整理一下前後端的順序關係
(或是有大大可說明也萬分感謝...)