簡體   English   中英

在Sharepoint ASPX頁的Java中查詢字符串

[英]Query String in Javascript in Sharepoint ASPX page

我正在嘗試將用戶重定向到新頁面,該頁面的用戶名將顯示在文本框中。 我正在使用ASP.NET登錄名和按鈕來執行此操作。 我的問題是,即時消息不是100%確定如何將LoginName中的值轉換為需要此值的javascript。 我沒有辦法進入服務器代碼,所以這一切必須由SharePoint設計器完成,我知道常見的方法是做這樣的事情

window.location="http://mysite/default.aspx?u="+ LoginName1

但這似乎並不起作用。 有什么答案嗎?

JavaScript代碼

function Redirect()
{   
    window.location="http://mysite/default.aspx";
}

ASP.NET代碼

<asp:Button runat="server" Text="To Sysomos" id="Button1" OnClientClick="if (!Redirect()) { return false;};"></asp:Button>
       <asp:LoginName runat="server" id="LoginName1" ></asp:LoginName>

嘗試這樣的事情

<script>
var usrName = "@HttpContext.Current.User.Identity.Name";
</script>

window.location =“ http://mysite/default.aspx?u ='+ usrName +'”;

參考: 如何在asp.net mvc中的腳本文件中獲取當前的登錄用戶名

假設您正在使用SP2010,則可以使用Sharepoint的客戶端對象模型來獲取當前的用戶詳細信息。

<script type="text/javascript">   
(function () {   
   var spUser;

   // Ensure SP objects have been loaded before executing our code    
   ExecuteOrDelayUntilScriptLoaded(getSpUser,"sp.js");    

   function getSpUser() {
       var clientContext = new SP.ClientContext.get_current();
       var spWeb = clientContext.get_web();
       spUser = spWeb.get_currentUser();
       clientContext.load(spUser);
       clientContext.executeQueryAsync(getSpUserSuccess, getSpUserException);
   }

   function getSpUserSuccess(sender, args) {
       var curUserId = spUser.get_loginName();
       // redirectToSomeAspxPage();
   }

   function getSpUserException(sender, args) {
       // Do any necessary error handling.
   } 
})();
</script>

唯一的問題是,重定向的時間可能會花一點時間,因為代碼需要等待sp.js加載才能獲取當前用戶的詳細信息。 或者,您可以在查詢字符串中不帶用戶名的情況下進行重定向,並使用上述代碼從ASPX頁面中檢索用戶名。

您可以找到當前用戶的用戶名和其他內容。 為此,請在.aspx頁頂部添加以下行: <%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

Version=14.0.0.0 2010年SharePoint和Version=12.0.0.0對於SharePoint 2007)

現在,在<form>標記之后,添加以下行:

<form>
  <SPSWC:ProfilePropertyLoader runat="server"/>

最后,在</form>標記之前添加以下代碼塊:

<div id="userDetails" style="display:none">
  <asp:LoginName runat="server" id="userLogin">
  <SPSWC:ProfilePropertyValue PropertyName="FirstName" ApplyFormatting="false" id="userFirstName" runat="server"/>
  <SPSWC:ProfilePropertyValue PropertyName="LastName" ApplyFormatting="false" id="userLastName" runat="server"/>
  <SPSWC:ProfilePropertyValue PropertyName="WorkEmail" ApplyFormatting="false" id="userWorkEmail" runat="server"/>
  <SPSWC:ProfilePropertyValue PropertyName="PreferredName" ApplyFormatting="false" id="userPreferredName" runat="server"/>
</div>

因此,在您的頁面中,您將看到一個“ userDetails”塊,其中包含當前用戶的登錄名,名字,姓氏,工作電子郵件和首選名稱。 使用JavaScript,您可以通過以下方式獲取用戶名:

document.getElementById('ctl00_userLogin').innerHTML

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM