作者aiueoH (滿滿的)
看板C_Sharp
標題[問題] ASP.NET 使用 jQuery .load() 錯誤
時間Fri Jun 1 02:26:20 2012
小弟是asp.net新手,最近想做個網頁
網頁呈現方式是
上面有個 menu div
下面有個 content div
按下 menu 中的連結時下面的 content 會使用 jQuery 的 load 載入對應的網頁
js程式碼是這樣 $("div#content").empty().load(url);
在這裡小弟遇到了幾個問題
1.
我的 menu 那邊有個 <asp:Button> 作為登出按鈕
當我一登入 進入該網頁時 登出的按鈕是沒問題的
但是當我點選的 menu 中的連結 content 載入網頁後
那個登出的按鈕按下後就會出現錯誤
( 錯誤訊息
http://pastebin.com/kdcch7P2 )
2.
其中有個連結對應到的網頁 內容有 gridview(使用SqlDataSource連結資料)
完全顯示不出來 但也沒顯示錯誤訊息
因為小弟有學過一點點 php 所以都是用寫 php 的想法去做
似乎沒辦法直接套用在 asp.net 上
不知道板上有沒有高手或者遇過相同問題的前輩可以替我解答 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.135.38
※ 編輯: aiueoH 來自: 1.163.135.38 (06/01 02:26)
1F:→ ssccg:你載入到div的網頁是完整的一個還是UserControl? 06/01 08:53
完整的網頁,但我試著把 <html> <body> 標籤刪除 還是不行
※ 編輯: aiueoH 來自: 1.163.135.38 (06/01 09:23)
2F:→ ssccg:你主頁的form有包到那個div嗎? 06/01 09:29
有
※ 編輯: aiueoH 來自: 1.163.135.38 (06/01 09:57)
3F:→ ssccg:主頁的form不要包到div,不然會有一些內建欄位衝到 06/01 10:12
4F:→ ssccg:你的錯誤看起來是viewstate post值變成主頁的+載入頁的 06/01 10:13
感謝指導 問題1的錯誤訊息已經不會出現了 可以正常執行
可是問題2的 gridview 一樣出不來 :(
※ 編輯: aiueoH 來自: 1.163.135.38 (06/01 22:51)
5F:推 qwer820404:出不來是沒有做bind或是postback的處理被洗掉了?? 06/02 00:11
我的gridview那個網頁
直接開的話都沒有問題
可是被用 .load() 進去就會顯示不出來
※ 編輯: aiueoH 來自: 1.163.135.38 (06/02 00:50)
6F:推 qwer820404:看一下原始碼 aspx的html有在div裡面嗎 06/02 08:50
沒有 我已經把 <html> <body> 都拿掉了
我的狀況是 load 之後 div 裡面還是完全空的狀態 沒有東西
※ 編輯: aiueoH 來自: 1.163.128.221 (06/02 10:32)
7F:推 qwer820404:方便提供你的網頁檔嗎?? 我想測試一下 06/02 14:18
8F:推 qwer820404:我做了簡單的測試 有A、B兩個網頁 06/02 14:41
9F:→ qwer820404:B是單純用一個gridview+sqldatasource的網頁 06/02 14:41
10F:→ qwer820404:A是用一個form包住一個div 然後有jquery語法把B載到div 06/02 14:42
11F:→ qwer820404:jquery的語法我是用$("#form1").ready(function(){}); 06/02 14:42
12F:→ qwer820404:把$("#div").empty().load(url);放在大括號裡面 06/02 14:43
13F:→ qwer820404:這樣是可以正常出來的 你的觸發事件是Click?? 06/02 14:43
14F:→ qwer820404:那有用alert()語法測嗎,看你的觸發事件是否正常觸發 06/02 14:44
15F:→ ssccg:先用browser的工具看一下你load()的request/response怎樣了 06/02 16:52
16F:→ ssccg:是整頁都沒讀到還是只有gridview顯示不出來? 06/02 16:53
感謝兩位前輩耐心指點 小弟後來發現是連結的問題
因為div#content內的網頁還有一個menuB
小弟的檔案路徑分別是有
/mainmenu.aspx (menuA)
/test/insert.aspx
/test/gridview.aspx
而這個menuB的連結(使用load的url)
我原本是設 gridview.aspx 以及 /test/gridview.aspx 都不行
後來發現須設為 ../test/gridview.aspx 才可以正常執行
有點不懂為何會這樣 "../" 跟 "test/" 不是應該可以抵銷嗎?
現在小弟出現另外兩個問題
1.
insert.aspx 內的 button 不能用
錯誤訊息
--------------------------------------------------------------------------
找不到資源。
描述: HTTP 404. 您要尋找的資源 (或其相依性的其中之一) 可能已經移除、名稱已經變
更或是暫時無法使用。請檢閱下列 URL,並且確定它的拼寫無誤。
要求的 URL: /insert.aspx
--------------------------------------------------------------------------
這個小弟大概知道是因為在mainmenu.aspx裡 load /test/insert.aspx
所以當下路徑會指在主目錄下(與mainmenu.aspx同一層)
但是不知道該怎麼解決
/test/insert.aspx 找不到有關的路徑參數
php的話 大概就是改form的目標網頁
asp.net該怎麼辦呢???
2.
gridview.aspx 內的 gridview 修改 刪除 功能不能用
會顯示 無效的viestate
錯誤訊息 (
http://pastebin.com/MzxFND3X)
是否跟有兩個form有關係?
不好意思 再麻煩一下前輩了 謝謝
※ 編輯: aiueoH 來自: 1.163.128.221 (06/04 05:44)
17F:推 qwer820404:第一個問題你可能要去了解一下絕對跟相對路徑的用法 06/04 19:24
18F:→ qwer820404:第二個問題是 你貼的錯誤訊息連結失效哩 06/04 19:24
問題2不知道我改到什麼東西 沒有再出現了 @_@
關於問題1
不知道qwer大大可否為我解惑一下
我的理解是這樣
當前路徑是在mainmenu.aspx 就算是load /test/insert.aspx
當前的路徑也應該是test的上一層也就是mainmenu.aspx所在的目錄
在php的話應該要把form的post網頁設為 /test/insert.aspx
可是在aps.net的form沒有這個參數可以設定
(我看到的只有id和runat)
※ 編輯: aiueoH 來自: 1.163.128.32 (06/05 20:44)
19F:推 qwer820404:form是html的東西…怎麼會兩邊不一樣 06/05 21:47
20F:→ qwer820404:form有action屬性可以設定Submit之後要導的網頁 06/05 21:48