// Обновляем поле после изменений пользователя public override void UpdateFieldValueInItem() { // Проверяем валидность страницы Page.Validate(); if (Page.IsValid) { // Посмотрим, что пришло с клиента FileUpload fuDocument = (FileUpload)TemplateContainer.FindControl("fuDocument"); HiddenField hdFileName = (HiddenField)TemplateContainer.FindControl("hdFileName"); // Если скрытое поле пусто и есть файл, значит, его нужно удалить if (hdFileName.Value == String.Empty && currentFile != null) { // Удаляем файл deleteFile(); // Обнуляем значение поля currentFile = null; } // Загружаем файл и выставляем на него ссылки if (fuDocument.HasFile) { SPWeb web = SPContext.Current.Site.RootWeb; SPFolder folder = web.GetFolder(SPUrlUtility.CombineUrl(web.ServerRelativeUrl, libraryName)); // Если файл был, удалим его if (currentFile != null) { deleteFile(); } // Добавим новый файл и сохраним соответствующие значения currentFile = addFile(folder, fuDocument); } base.UpdateFieldValueInItem(); } }
// Получаем значение текущего файла protected override void OnInit(EventArgs e) { currentFile = (FileValue)this.ItemFieldValue; base.OnInit(e); }