javascript - Sharepoint 2010 Client Object Model - Hämta namnet på den aktuella listan


Jag försöker skapa en enkel anpassad åtgärdsknapp för bandmenyn i Sharepoint 2010.

Jag vill hålla det generiskt, så ingen hårdkodning av biblioteknamn etc.

Hur kan jag ta reda på namnet på den aktuella listan som visas? Jag skulle tro att detta är möjligt utan att behöva analysera det från URL:en.

Stort tack!

Svar #1

Det tog lite grävande, men jag hittade svaret till slut. Du kan få listans Id i Javascript genom att använda:

//Get the Id of the list
var listId = SP.ListOperation.Selection.getSelectedList();

Svar #2

Du kommer att hitta det i SPContext-klassen

SPList list = SPContext.Current.List;
string listTitle = list.Title;

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontext.aspx

För att tolka URL:en kan du använda något liknande detta

VB.NET

Private Function TryGetListName() As String
    If String.IsNullOrEmpty(Me.ListName) Then
        Dim path() As String = Me.Page.Request.Url.AbsolutePath.Trim("/"c).Split("/"c)
        Dim listName As String = String.Empty
        For i As Integer = 0 To path.Length - 1
            If path(i).ToLower = "lists" Then
                If i < path.Length - 1 Then
                    listName = path(i + 1)
                End If
                Exit For
            End If
        Next
        Return listName
    Else
        Return Me.ListName
    End If
End Function

C#

private string TryGetListName()
{
    if (string.IsNullOrEmpty(this.ListName)) {
        string[] path = this.Page.Request.Url.AbsolutePath.Trim('/').Split('/');
        string listName = string.Empty;
        for (int i = 0; i <= path.Length - 1; i++) {
            if (path[i].ToLower() == "lists") {
                if (i < path.Length - 1) {
                    listName = path[i + 1];
                }
                break;
            }
        }
        return listName;
    } else {
        return this.ListName;
    }
}

Lycka till