作者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