2013-05-06 82 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

相關問題