Разница между StaticName и InternalName (в классе SPField) - PullRequest
3 голосов
/ 10 июля 2009

Я хочу сделать запрос CAML полуумным - чтобы я мог присвоить ему заголовок (то, что видит конечный пользователь), и он ищет соответствующий «заголовок» для передачи как часть запроса CAML:

var caml = "<OrderBy><FieldRef Name='" + field + "'/></OrderBy>";

Похоже, что я могу перебрать коллекцию Fields списка, используя объектную модель, а затем отключить свойство Title, чтобы сравнить с тем, что видит пользователь. Мой вопрос заключается в использовании StaticName против InternalName. Моя интуиция + документация MSDN, кажется, указывают на то, что InternalName является подходящим свойством для использования и замены поля в приведенном выше коде - особенно потому, что InternalName нельзя изменить.

Кто-нибудь может пролить свет на это?

1 Ответ

7 голосов
/ 10 июля 2009

проверить этот вопрос на форумах msdn:

Имя Vs. Статическое имя

При создании столбцов сайта в CAML требуется только атрибут «Имя», который сопоставляется с SPField.InternalName в объектной модели, вам не нужно устанавливать атрибут StaticName. Соответственно SPField.InternalName и SPField.StaticName будут возвращать одно и то же значение. Но если вы установите атрибут StaticName в CAML, SPField.InternalName вернет значение, указанное в атрибуте Name, а SPField.StaticName вернет значение, указанное в атрибуте StaticName.

...