2013-05-06 64 views
1

是否有一个JavaScript对象,方法或属性可用于在字体最终用户登录到SharePoint后检测特定的SharePoint会话变量是否存在?检测前端用户登录到SharePoint 2010后是否存在会话变量

以下似乎工作..

<SharePoint:Delegate runat="server" ControlId="MyDelegateControlTest" Id="MyDelegateControlTest"> 
<template_Controls> 
<script type="text/javascript">var mvar='hello'; console.log('hello world');</script> 
</template_Controls> 
</SharePoint:DelegateControl> 

但我尝试存储会话变量分...

<SharePoint:Delegate runat="server" ControlId="MyDelegateControlTest" Id="MyDelegateControlTest"> 
<template_Controls> 
<script type="text/javascript">var mvar='<%= Session["demo"]%>'; console.log('hello world');</script> 
</template_Controls> 
</SharePoint:DelegateControl> 

...我得到我的网页上一个错误,指出“Microsoft.SharePoint.WebControls.DelegateControl不具有公共属性名称脚本”

我在做什么错了?

回答

1

由于会话变量是服务器端对象,因此从客户端的JavaScript读取它们的唯一方法是将会话值作为JavaScript变量响应到页面中。你可以在你的母版页中使用委托控制来完成此操作,然后对变量进行JavaScript检查。

编辑: 在委托你的前端,添加一个脚本块,看起来象下面这样:

<script type="text\javascript"> var mySessionVar = '<%= Session["mySessionVar "] %>'; </script>

然后,您应该能够在你的JavaScript代码访问mySessionVar别处。

+0

因此,如果我有我的主模板上的委托控制集,如何从它内部调用SharePoint会话变量?我假设委托控制只在前端用户登录后才可用?这对我来说都是新的。谢谢 – blackhawk 2013-05-06 14:38:37

+0

看我编辑的代码示例 – Dan 2013-05-06 15:44:24

+0

我试着实现这个解决方案,但我得到一个错误,统计“Microsoft.SharePoint.WebControls.DelegateControl没有一个公共属性名称的脚本,任何建议? – blackhawk 2013-05-06 16:28:22