Исключение при выполнении запроса CAML sharepoint 2007 - PullRequest
1 голос
/ 23 января 2012

Имя столбца в библиотеке документов: Имя столбца => Ключевые слова (подпроцессы, методология, Модель обслуживания и т. Д.) Тип столбца => Несколько строк текста

Мы используем указанное выше имя столбцав запросе caml, как показано ниже

query.Query = "<Where><Eq><FieldRef Name='Keywords(Sub-Processes,Methodology,Servicing Model, etc)'/><Value Type='Text'>Merchant Services,Merchant Set Up</Value></Eq></Where>";

, но когда мы запускаем код, мы получаем исключение:

Microsoft.SharePoint.SPException: Один или несколько типов полей установлены неправильно,Перейдите на страницу настроек списка, чтобы удалить эти поля.

Это исключение из-за специальных символов, используемых в имени столбца, если да, то как я могу это исправить.

Мы можем 't изменить имя столбца, потому что это требование.

Ответы [ 3 ]

2 голосов
/ 24 января 2012

Внутренние имена и отображаемые имена сильно отличаются друг от друга.Они могут быть одинаковыми в некоторых случаях, но не во всех.Как правило, между двумя словами и пробелом имеется escape-последовательность.

Часто рекомендуется извлекать внутреннее имя во время выполнения, а не жестко его кодировать.

var internalName=list.Fields.GetFieldByInternalName(column.ColumnName).Title;
1 голос
/ 23 января 2012

Я могу точно сказать вам (учитывая специальные символы), что это не внутреннее имя поля. Это может быть отображаемое имя, но это не внутреннее имя.

Ошибка в том, что нет поля с внутренним именем того, что вы указали.

Лично, когда я хочу найти внутреннее имя поля, я перехожу к настройкам списка для списка и редактирую столбец. При этом будет параметр запроса с «field =» и внутренним именем. Есть и другие места, где его можно найти, и другие инструменты sharepoint (SharePoint Manager был упомянут другим автором), которые можно использовать для получения такой информации.

0 голосов
/ 24 января 2012

Я использовал "Keywords_x0020_ x002f _x0020_Folksnomy", и это сработало для меня.Я извлек все столбцы библиотеки документов и связал его с GridView, в GridView я нашел это имя.

Показать имя столбца => Ключевые слова (подпроцессы, методология, модель обслуживания и т. Д.)

Неправильное значение => Keywords_x0020_ (Подпроцессы, _x0020_Методология, _x0020_Servicing_x0020_Model, _x0020_etc)

Недавно найденное правильное имя => Keywords_x0020_ x002f _00

...