Могу ли я установить в качестве значения по умолчанию для настраиваемого столбца списка новый Guid? - PullRequest
2 голосов
/ 16 апреля 2010

Я попытался установить для свойства defaultvalue этого поля значение Guid.NewGuid (), но каждый созданный элемент имеет одинаковый guid, поэтому я предполагаю, что Guid.NewGuid () сохраняется как значение по умолчанию, а не запускается каждый раз.

Единственный ли способ добиться этого - добавить обработчик событий в список для OnAdded?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2010

Я предполагаю, что для этого вы используете поле с одной строкой текста. Стандартным значением по умолчанию для такого поля всегда является константа, вы не можете назначить переменную или функцию через объектную модель. Все, что нужно сделать, это присвоить статический результат этого конкретного вызова функции.

Хотя текстовые поля могут поддерживать вычисленное значение по умолчанию, в нем используются те же функции, что и в столбцах «Вычисляемые», которые не поддерживают случайные числа.

Лучше всего использовать обработчик событий, я бы также порекомендовал ItemAdding поверх ItemAdded. Вы, конечно, будете назначать properties.AfterProperties["fieldname"] вместо field.DefaultValue.

1 голос
/ 16 апреля 2010

Если вы создаете поле с помощью кода и устанавливаете field.DefaultValue = Guid.NewGuid (), это запустит Guid.NewGuid () и сохранит возвращенный Guid в качестве значения по умолчанию. Это - эквивалент выполнения следующего кода.:

Guid newGuid = Guid.NewGuid();
string newGuidString = newGuid.ToString();
field.DefaultValue = newGuidString;

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

Должен быть в состоянии генерироватьслучайное число с использованием field.DefaultValue = "RANDBETWEEN (10,20)";но я не проверял это

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