最佳解答者
MasterPage 頁面若使用javascript 的 window.location 導頁,頁面不會導過去嗎?

問題
-
各位大大安安:
很久不見了,自上次發現論壇有改變之後,有一陣子都找不到這裡的網址 ^^" 再回來看到這個論壇時,看到各位大大還是非常活躍,真是非常開心。
小弟現在又必須要再跟各位大大請教一個有關MasterPage 的問題了,情形如下:
當我設定好一個MasterPage後,在內容頁有個DefaultA.aspx(設為起始頁面),而我在MasterPage內只有一段<input>的CODE,其寫法如下
<input type="text" id="txtTest" value="請輸入關鍵字" onkeypress="Search(this.value)" /> 我只希望在USER輸入關鍵字後能導入到DefaulteB.aspx,動作很簡單。
而Search() 這個javascript的function 如下
Search(strkey)
{
if (window.event) { e = event; e.which = e.keyCode; } else if (!e.which) e.which = e.keyCode;
var code = e.which; // 輸入鍵的 ASCII 碼。
var char = String.fromCharCode(e.which); // 輸入鍵字元。
var isAlt = e.altKey; // 是否按下 Alt 鍵。
var isCtrl = e.ctrlKey; // 是否按下 Ctrl 鍵。
var isShift = e.shiftKey; // 是否按下 Shift 鍵。
if (code==13) { // 判斷輸入鍵是否為 Enter 鍵。window.location = "DefaultB.aspx?Key=" + strkey;
}
}
在實際跑起來的時候,我隨便在TextBox下隨手輸入字串再按下Enter,然後進入Debut模式。在DefaultA.aspx 及 DefaultB.aspx 的Page_Load下中斷點,這時我看到一開始 DefaultB.aspx先被執行後,然後到一半又換DefaultA.aspx被執行,整個DefaultB.aspx的Page_Load結束後,程序又回到DefaultA.aspx的Page_Load並執行完畢。
回到頁面一看,頁面還是停留在DefaultA.aspx。不知道各位大大是否遇到過這樣的問題,還請各位不吝提供小弟一點解決的方法。
非常感謝大家 ^^
2010年7月18日 下午 02:43
解答
-
皮特你好
不知道可不可以不用JAVASCRIPT 來做這個 動作?
如果你在PAGE 上面建立了一個BUTTON
之後 SET 了這個BUTTON 是DEFAULT 的BUTTON 那麼你便可以 用VB/CSHARP 的 CODE 來實現 導頁 這個動作了
我有一個SAMPLE CODE 你可以參考
在你的MASTERPAGE 的TEXTBOX
<asp:Panel ID="pl_Default" runat="server" defaultbutton="btn_Btn2">
<asp:TextBox ID="txt_Text" runat="server" onkeypress="javascript:Search(this.value);" />
<div style="display:none"><asp:Button ID="btn_Btn2" Text="Btn2" runat="server" /></div> //如果你不想顯示 這個BUTTON 你可以用 DIV 來HIDE IT
</asp:Panel>之後在CODE BEHIND 會是這樣的
Protected Sub btn_Btn2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Btn2.Click
Response.Redirect("~/DefaultB.aspx?Key=" + txt_Text.Text.Trim)
End SubPlease forgive me if I mis-understood your questions.
Chi- 已標示為解答 BoberSongModerator 2010年7月23日 上午 05:34
2010年7月18日 下午 03:19 -
既然 MasterPage 的控制項是 <input>
表示一定會觸發 postBack(submit) 的事件
您可以考慮指定一下整個 form 的 PostBackUrl 為 DefaultB.aspx~
小中中的學習筆記- 已標示為解答 BoberSongModerator 2010年7月23日 上午 05:34
2010年7月21日 上午 02:00
所有回覆
-
皮特你好
不知道可不可以不用JAVASCRIPT 來做這個 動作?
如果你在PAGE 上面建立了一個BUTTON
之後 SET 了這個BUTTON 是DEFAULT 的BUTTON 那麼你便可以 用VB/CSHARP 的 CODE 來實現 導頁 這個動作了
我有一個SAMPLE CODE 你可以參考
在你的MASTERPAGE 的TEXTBOX
<asp:Panel ID="pl_Default" runat="server" defaultbutton="btn_Btn2">
<asp:TextBox ID="txt_Text" runat="server" onkeypress="javascript:Search(this.value);" />
<div style="display:none"><asp:Button ID="btn_Btn2" Text="Btn2" runat="server" /></div> //如果你不想顯示 這個BUTTON 你可以用 DIV 來HIDE IT
</asp:Panel>之後在CODE BEHIND 會是這樣的
Protected Sub btn_Btn2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Btn2.Click
Response.Redirect("~/DefaultB.aspx?Key=" + txt_Text.Text.Trim)
End SubPlease forgive me if I mis-understood your questions.
Chi- 已標示為解答 BoberSongModerator 2010年7月23日 上午 05:34
2010年7月18日 下午 03:19 -
既然 MasterPage 的控制項是 <input>
表示一定會觸發 postBack(submit) 的事件
您可以考慮指定一下整個 form 的 PostBackUrl 為 DefaultB.aspx~
小中中的學習筆記- 已標示為解答 BoberSongModerator 2010年7月23日 上午 05:34
2010年7月21日 上午 02:00