台灣最大程式設計社群網站
線上人數
835
 
會員總數:230808
接案會員:6775
文章總數:2320
討論主題:176286
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 另開視窗時母視窗不得reload 有點急 請前輩們幫忙

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
另開視窗時母視窗不得reload 有點急 請前輩們幫忙
價值 : 50 QP  點閱數:2627 回應數:11

樓主

WEBB
門外漢
0 47
718 96
發送站內信

各位前輩好 在下被此問題困擾 下面4種方式都試過 皆無法達成要求

1. Me.ClientScript.RegisterStartupScript(Me.GetType(), "_Calendar", sScript, True)

2. Response.Write("<script language='Javascript'" & ">" & "window.open('project/main.aspx')" & "<" & "/script>")

3. Response.Write("<javascript:window.open('http://www.yahoo.com.tw');/>")

4. Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "wopen", Script, True)


於母視窗開啟子視窗 但是母視窗不得reload
在下在Default.aspx的html可以
但是在以下Default.aspx.vb 不行
然而此事件必須要在Schedule1_EmptySlotClick中執行

Protected Sub Schedule1_EmptySlotClick(ByVal sender As Object, ByVal e As ClickableTableCellEventArgs)

End Sub



在下知道在html可以用===>'NavigateUrl='<%# "project/main.aspx?flag=複查點&ID=" & Eval("ID") %>'
但是Schedule1_EmptySlotClick事件中可以用'NavigateUrl嗎

煩請各位前輩指導 謝謝!!!

本篇文章發表於2009-09-29 02:25
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
asp.net的本質就是透過PostBack的機制來運作
因此您如果要觸發後端的事件
都會有PostBack的動作發生

什麼是PostBack
就是Submit給自己

所以您說的要觸發Server端的事件,又要不Reload(事實上是PostBack)
這就矛盾了!!

因此,是否請您仔細的說明,您想做的是什麼樣的事情
為何需要在Server端的事件中進行開新視窗,卻又不讓PostBack
這樣才能讓大家幫忙您找出可行的解法

^_^


本篇文章回覆於2009-09-29 08:12
--未登入的會員無法查看對方簽名檔--
2樓
回應

lsk
捐贈 VP 給 lsk 檢舉此回應
用AJAX的UpdatePanel算不算Reload?


本篇文章回覆於2009-09-29 08:51
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Jeff
捐贈 VP 給 Jeff 檢舉此回應
若是要開回伺服端再開啟子視窗,可以使用 CallBack 的方式回呼伺服端,再由伺服端回應要開啟的網址給前端接收函式。

依你的需求是希望在不 Reload 頁面而產生控制項的 Click 事件,有另一種進階的方式,就是直接修改控制項讓它可以
用 CallBack 的方式引發如同 PostBack 時的事件,我目前的做法就是這種方式。


本篇文章回覆於2009-09-29 10:34
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

WEBB
檢舉此回應
先抱歉在下表達能力不清

謝謝兩位前輩回覆 在下的意思為如下圖 點擊HyperLink跳出另開視窗

<asp:HyperLink ID="HyperLink7" runat="server"
NavigateUrl='<%# "project/main.aspx?flag=複查點&ID=" & Eval("ID") %>' Target="_blank">BBB
</asp:HyperLink>



http://220.134.48.66/6.jpg

順便請教前輩 UpdatePanel物件是另開視窗嗎 謝謝!!!


本篇文章回覆於2009-09-29 10:49
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

WEBB
檢舉此回應
在下有看callback機制 但是書中範例是用 button去做
但是在下觸發的控制項 類似table中cell 的小格子
按下小格子 開啟新視窗


本篇文章回覆於2009-09-29 11:05
--未登入的會員無法查看對方簽名檔--
6樓
回應

Jeff
捐贈 VP 給 Jeff 檢舉此回應
HyperLink 的 NavigateUrl 屬性是可以直接使用 javascript,使用 window.open 方法即可開啟新視窗。

NavigateUrl="javascript:window.open(網址);"


本篇文章回覆於2009-09-29 11:07
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

WEBB
檢舉此回應
感謝前輩回覆NavigateUrl="javascript:window.open(網址);"

但是空白小格子中 點擊小格子 一定會使得母視窗PostBack

請教前輩們該如何更改控制項 把PostBack 此功能停用




本篇文章回覆於2009-09-29 12:45
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

WEBB
檢舉此回應
各位前輩們好 在下試過事件為空值
Protected Sub Schedule1_EmptySlotClick(ByVal sender As Object, ByVal e As ClickableTableCellEventArgs)

End Sub

只要按空格小格子 一定會reload 也就是說不管有沒有程式碼
OnEmptySlotClick="Schedule1_EmptySlotClick" 拿掉這段也是一樣

所以請教前輩們被 把PostBack 此功能停用的方法


本篇文章回覆於2009-09-29 13:11
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

Jeff
捐贈 VP 給 Jeff 檢舉此回應
你用錯控制項了,不能使用 LinkButton 控制項,而是要使用 HyperLink 控制項。


本篇文章回覆於2009-09-29 13:57
--未登入的會員無法查看對方簽名檔--
10樓
回應

gipi
檢舉此回應
NavigateUrl="javascript:window.open(網址);return false;"試試..


本篇文章回覆於2009-09-29 18:35
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

WEBB
檢舉此回應
感謝前輩們指導 在下問題解決了 顯然是跟控制項有關係 謝謝各位


本篇文章回覆於2009-09-30 01:19
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.