新足迹

 找回密码
 注册

精华好帖回顾

· 不知道还赶的上活动不?——老鸭粉丝汤 (2007-7-3) 思思妈妈 · 跳槽记 (2007-9-11) joaquin
· 经典歌曲之眼花缭乱翻唱 之一 All Out of Love (2008-6-24) patrickzhu · 扫大街-老片片 (2010-2-4) MINIBOAT
Advertisement
Advertisement
查看: 1583|回复: 26

Javascript to detect Postback [复制链接]

发表于 2011-10-4 21:23 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我有一段js code只想run once, 当page post back,这段代码不应该run.但有什么办法在js里知道这是postback 喃? 因为我不能加<%= %>代码,sharepoint 不允许。还有什么办法喃?
Advertisement
Advertisement

发表于 2011-10-4 21:27 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
说实话,没看懂,听起来js是run在server端的?

发表于 2011-10-4 21:32 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
哦,因为在sharepoint里我只能加java script web part, 就是说我不能有任何server side code. 我有一段 jquey 的 code 要把一个selection list 里的值移到另一个里。但是在那个page里有几个button是check validation。所有当user click the button, the page post back and the JS code run again. 现在我就是只想那段code run at the first time.

发表于 2011-10-4 21:35 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个单从Client可能做不到。

一般来做都是在Server side用IsPostBack来检查是否是postback,如果不是就输出那段Javascript,否则就跳过。

发表于 2011-10-4 21:37 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我好像明白点了,你应该可以这样做,可以设一个js global variable作flag来控制js是否要run.

在browser第一次render的时候,这个flag=true,每次postback到server,它都被改成false,这样render到browser时,js就不会执行那块logic了。

发表于 2011-10-4 21:39 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 混不到坑的萝卜 于 2011-10-4 21:35 发表
这个单从Client可能做不到。

一般来做都是在Server side用IsPostBack来检查是否是postback,如果不是就输出那段Javascript,否则就跳过。


萝卜的方法也行,让它run就输出,不让它run就压根没有。

评分

参与人数 1积分 +3 收起 理由
coin_king + 3 谢谢奉献

查看全部评分

Advertisement
Advertisement

发表于 2011-10-4 21:53 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
关键是我办法写server side code 去变值,只能用java script. 那从java script 里我可不可以知道是哪个event call postback?

发表于 2011-10-4 21:56 |显示全部楼层
此文章由 showen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 showen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
check validation可以用ajax作吗?

这样就没有post back了

评分

参与人数 1积分 +3 收起 理由
coin_king + 3 谢谢奉献

查看全部评分

发表于 2011-10-4 21:57 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 liedong 于 2011-10-4 20:53 发表
关键是我办法写server side code 去变值,只能用java script. 那从java script 里我可不可以知道是哪个event call postback?

Client side单独是做不到的。因为每次postback你的浏览器就接到一个全新版本的html。于是你的document.ready就又要执行一次。
你可以把那个web part的server side改写一下吧?Client side是没法做到你需要的。

除非……
你那些validation用ajax来做,整个页面根本就不postback。

评分

参与人数 1积分 +3 收起 理由
coin_king + 3 谢谢奉献

查看全部评分

发表于 2011-10-4 22:02 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
都是sharepoint out of box 的东西,我不想改那里。
我明天试一下这个
var referrer =  document.referrer;
如果referrer是page 自己那就是post back otherwise run the js code

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 这种改动可能是最小

查看全部评分

发表于 2011-10-4 22:02 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果不能接触server side code,还是像大家建议的一样,用ajax call吧,这样也省心了.
Advertisement
Advertisement

发表于 2011-10-4 22:08 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
document.referer这种玩意比较原始……不过你尽可以在你的项目中用。不建议在internet site上用。

server side才是稳妥的解决方案

发表于 2011-10-4 22:20 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
都是intranet的东西,所以就用java script了。

发表于 2011-10-4 22:53 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
js里
在把一个selection list 里的值移到另一个 之前,最好检查一下,是否之前已经移过了,如果移过了就跳过,这样才可万无一失。

不知道你们的环境支持attribute不,比如说移完后放个 $("#selectid").attr("jobdone",'Y"), 移之前检查 if($("#selectid").attr("jobdone")==="Y"){}

发表于 2011-10-4 23:05 |显示全部楼层
此文章由 o2h2o 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 o2h2o 所有!转贴必须注明作者、出处和本声明,并保持内容完整
hidden field viewstate的 的长度严重不一样吧

一开始是 clean 的 应该 很短
后来有postback 里面的 viewstate 就啥乱东西都有了

不过这样不太保险

[ 本帖最后由 o2h2o 于 2011-10-4 23:08 编辑 ]

发表于 2011-10-4 23:33 |显示全部楼层
此文章由 matrics 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 matrics 所有!转贴必须注明作者、出处和本声明,并保持内容完整
可以用cookie实现
Advertisement
Advertisement

发表于 2011-10-5 09:53 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最后还是用document.referrer解决了

发表于 2011-10-5 10:07 |显示全部楼层

CEWP?

此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
还是Server Side比较干净稳妥。Client side的方案都是维护的噩梦。

发表于 2011-10-5 11:30 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
当你SHAREPOINT做多了,你就喜欢CLIENT SIDE CODE了。SHAREPOINT 的DEPLOYMENT 简直是噩梦,特别是要UPGRADE的时候
我是尽量用OUT OF BOX 的FUNCTION.

发表于 2011-10-5 11:34 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
上两张亮图,上周给SERVICE DESK做的RESOURCE BOOKING CALENDAR,用户可以自己BOOKING RESOURCE,没有按时还的话,会收到REMINDER.
没有一行SERVER CODE 哦,只有JQUERY (<2 days development).

[ 本帖最后由 liedong 于 2011-10-5 11:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

发表于 2011-10-5 19:49 |显示全部楼层
此文章由 showen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 showen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不错!
jQuery + SPServices + ClientOM?

[ 本帖最后由 showen 于 2011-10-5 19:53 编辑 ]
Advertisement
Advertisement

发表于 2011-10-5 21:12 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 showen 于 2011-10-5 19:49 发表
不错!
jQuery + SPServices + ClientOM?

JQuery + Out of Box Calendar

发表于 2011-10-5 22:12 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
呵呵,上面那个calendar我会做了,下面那个还不熟悉。

Code发给我一份吧,MagicGuruAu@hotmail.com,谢啦!

[ 本帖最后由 混不到坑的萝卜 于 2011-10-5 21:14 编辑 ]

发表于 2011-10-6 07:33 |显示全部楼层
此文章由 showen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 showen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
恩 借帖问下,win 7下面 sharepoint 2010 开发环境搭建一般怎么弄?

看了下这个 http://msdn.microsoft.com/en-us/library/ee554869.aspx

做到第二步的第二项 Extract the installation........... 就做不下去了

发表于 2011-10-6 08:16 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 showen 于 2011-10-6 06:33 发表
恩 借帖问下,win 7下面 sharepoint 2010 开发环境搭建一般怎么弄?
看了下这个 http://msdn.microsoft.com/en-us/library/ee554869.aspx
做到第二步的第二项 Extract the installation........... 就做不下去了

没有找到第二步第三项的config.xml?

发表于 2011-10-6 09:20 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 showen 于 2011-10-6 07:33 发表
恩 借帖问下,win 7下面 sharepoint 2010 开发环境搭建一般怎么弄?

看了下这个 http://msdn.microsoft.com/en-us/library/ee554869.aspx

做到第二步的第二项 Extract the installation........... 就做不下去了


不建议装在WIN7上,弄个vm装serVER 2008
Advertisement
Advertisement

发表于 2011-10-6 09:22 |显示全部楼层
此文章由 coin_king 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coin_king 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 混不到坑的萝卜 于 2011-10-5 22:12 发表
呵呵,上面那个calendar我会做了,下面那个还不熟悉。

Code发给我一份吧,MagicGuruAu@hotmail.com,谢啦!

下面那个也是OUT OF BOX的,就是NEWFORM.ASPX.只是用JQUERY HIDE SOME FIELDS

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部