Я написал веб-часть на C # для Sharepoint 2007, в которой есть одно поле, которое проверяется как обязательное поле с помощью RequiredFieldValidator()
. В веб-части также есть несколько полей конфигурации (те, которые вы редактируете, нажимая на Изменить общую веб-часть).
Когда я вносю изменения в эти поля и пытаюсь их применить, проверка пользовательского поля запускается и предотвращает обновление, даже если я не отправляю форму. Я только пытаюсь отправить настройки. Веб-часть может использоваться в нескольких местах на нашей ферме, поэтому администраторы семейства сайтов должны иметь возможность изменять настройки - в настоящее время эти пользователи недостаточно дружелюбны для этого.
Здесь я проверяю поле пользователя:
// Validate form field - required field, and max length is 100 characters.
InputFormRequiredFieldValidator messageRequiredValidator = new InputFormRequiredFieldValidator();
messageRequiredValidator.ControlToValidate = txtMessage.ID;
messageRequiredValidator.ErrorMessage = "You must write a message to send!";
messageRequiredValidator.Display = ValidatorDisplay.Dynamic;
messageRequiredValidator.Text = "<img src=\"/_layouts/images/CNSCA16.gif\"/> You must write a message to send.";
tc.Controls.Add(messageRequiredValidator);
Здесь я определяю одно из полей конфигурации:
private string recipientEmailAddress = "sender@domain.tld";
[WebBrowsable(true),
Personalizable(true),
WebPartStorage(Storage.Shared),
WebDescription("Email address the form should be sent to"),
WebDisplayName("Recipient Email Address"),
SPWebCategoryName("Email Settings")]
public string RecipientEmailAddress
{
get { return recipientEmailAddress; }
set { recipientEmailAddress = value; }
}
Это первая веб-часть, которую я написал, поэтому могут быть некоторые тонкости, которые я упускаю при настройке администратором и проверке полей, отправленных пользователем.