我有这个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,因为列表中的每个条目都是文件集。 返回的值始终为“1”。我不知道我的排序为什么是什么 根本不起作用。

请帮我解决这个问题。谢谢。

有帮助吗?

解决方案

嗨Carls我认为字段名称有问题。U包括字段名称的空间

如果要避免必须寻找特定字段的内部名称是,请在第一个名称列时,不包含任何空格或特殊字符。创建字段(列)后,返回并重命名字段以包括所需空格或特殊字符。SharePoint仍将在没有空格的情况下保留原始字段名称,您可以在没有问题的情况下直接在查询中使用。

其他提示

或使用其内部名称:

query.query=“ ”;

很晚,但如果您有问题,则可以使用以下全部或部分主旨来使用以下内容: https://gist.github.com/trgraglia/4672176

作为已接受的答案状态,字段名称是问题。您需要使用字段的静态名称。静态名称将始终保持不变。即使列已重命名。所以你应该按显示名称从列集中获取列,然后从属性中获取静态名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top