Клиентская объектная модель Sharepoint 2010 - Получить имя текущего списка - PullRequest
6 голосов
/ 18 сентября 2011

Я пытаюсь создать простую кнопку настраиваемого действия для меню ленты в Sharepoint 2010.

Я хочу сохранить его универсальным, чтобы не было жесткого кодирования названий библиотек и т. Д.

Как узнать название просматриваемого текущего списка?Я полагаю, что это возможно без необходимости разбирать его по URL.

Большое спасибо!

Ответы [ 2 ]

7 голосов
/ 19 сентября 2011

Потребовалось немного покопаться, но я нашел ответ в конце.Вы можете получить идентификатор списка в Javascript, используя:

//Get the Id of the list
var listId = SP.ListOperation.Selection.getSelectedList();
0 голосов
/ 18 сентября 2011

Вы найдете это в классе SPContext

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

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

Для анализа URL вы можете использовать что-то вроде этого

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;
    }
}

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...