SPQuery проблема сортировки - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть этот SPListItem.Folder в sharepoint, который содержит свойство с именем «ID актива».

У меня есть эти данные в моем списке

Asset ID  |     Name      |  Asset Type 
    1     |  GamesFolder  |    Games
    2     |  AppsFolder   |    softwares
    3     |  MusicFolder  |    music

В моем коде я сделал это

SPList objList = web.Lists["MyList"];
SPQuery query = new SPQuery();

query.Query = "<OrderBy><FieldRef Name='Asset ID' Ascending='FALSE'/></OrderBy>";
query.ViewAttributes = "Scope=\"Recursive\"";               
query.RowLimit = 1;

SPListItemCollection items = objList.GetItems(query);

return objList.Items[0].Folder.Properties["Asset ID"].ToString();

Я использую .Folder, потому что каждая запись в списке - это DocumentSet.Возвращаемое значение всегда равно «1».Я не знаю, что случилось, почему моя сортировка не работает вообще.

Пожалуйста, помогите мне решить эту проблему.Благодарю.

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

Привет, Карлс. Я думаю, что есть проблема с именем поля. U включить пробел в имя поля

Если вы не хотите выяснять, каково внутреннее имя определенного поля, при первом названии столбца не включайте пробелы или специальные символы. Как только поле (столбец) будет создано, вернитесь назад и переименуйте поле, чтобы включить пробелы или специальные символы по желанию. SharePoint по-прежнему сохранит исходное имя поля без пробелов, и вы можете использовать его непосредственно в своем запросе без проблем.

0 голосов
/ 07 октября 2014

Немного поздно, но если у вас возникли проблемы, вы можете использовать все или часть следующего содержания: https://gist.github.com/trgraglia/4672176

И, как говорится в принятом ответе, имя поля является проблемой. Вам нужно использовать статическое имя поля. Статическое имя всегда останется прежним. Даже если столбец переименован. Таким образом, вы должны получить столбец из коллекции столбцов по отображаемому имени, а затем получить статическое имя из свойств.

0 голосов
/ 06 декабря 2013

или используйте свое внутреннее имя:

query.Query = " ";

...